//
if (aCT==GeomAbs_BezierCurve ||
aCT==GeomAbs_BSplineCurve||
+ aCT==GeomAbs_OffsetCurve ||
aCT==GeomAbs_OtherCurve) {
if(!i){
if (aCT==GeomAbs_BezierCurve ||
aCT==GeomAbs_BSplineCurve||
+ aCT==GeomAbs_OffsetCurve ||
aCT==GeomAbs_OtherCurve) {
if(!i){
NewFpar = fpar;
NewLpar = lpar;
isSameCurve = Standard_True;
- } else if (aType == CurType &&
- aType != GeomAbs_BezierCurve &&
- aType != GeomAbs_BSplineCurve &&
- aType != GeomAbs_OtherCurve) {
+ } else if (aType == CurType) {
switch (aType) {
case GeomAbs_Line:
{
// extra solutions those would cause *Exception*: incoherent intersection
GeomAbs_CurveType CType = AC.GetType(), BisType = ABis.GetType();
- Standard_Boolean canElongateC = !(CType == GeomAbs_BezierCurve ||
- CType == GeomAbs_BSplineCurve ||
- CType == GeomAbs_OtherCurve);
- Standard_Boolean canElongateBis = !(BisType == GeomAbs_BezierCurve ||
- BisType == GeomAbs_BSplineCurve ||
- BisType == GeomAbs_OtherCurve);
+ Standard_Boolean canElongateC = !(CType == GeomAbs_BezierCurve ||
+ CType == GeomAbs_BSplineCurve ||
+ CType == GeomAbs_OffsetCurve ||
+ CType == GeomAbs_OtherCurve);
+ Standard_Boolean canElongateBis = !(BisType == GeomAbs_BezierCurve ||
+ BisType == GeomAbs_BSplineCurve ||
+ BisType == GeomAbs_OffsetCurve ||
+ BisType == GeomAbs_OtherCurve);
Handle(Geom2d_TrimmedCurve) TBis = Handle(Geom2d_TrimmedCurve)::DownCast(Bis);
Handle(Geom2d_TrimmedCurve) TC2d = Handle(Geom2d_TrimmedCurve)::DownCast(C2d);
#include <Geom2d_Ellipse.hxx>
#include <Geom2d_Hyperbola.hxx>
#include <Geom2d_Line.hxx>
+#include <Geom2d_OffsetCurve.hxx>
#include <Geom2d_Parabola.hxx>
#include <Geom2d_TrimmedCurve.hxx>
#include <Geom2dConvert.hxx>
else if ( TheType == STANDARD_TYPE(Geom2d_BSplineCurve)) {
aTypeCurve = GeomAbs_BSplineCurve;
}
+ else if ( TheType == STANDARD_TYPE(Geom2d_OffsetCurve)) {
+ aTypeCurve = GeomAbs_OffsetCurve;
+ }
else {
aTypeCurve = GeomAbs_OtherCurve;
}
case GeomAbs_Hyperbola :
case GeomAbs_BezierCurve :
case GeomAbs_BSplineCurve :
+ case GeomAbs_OffsetCurve :
case GeomAbs_OtherCurve :
for (j = 1; j <= myDiscret/2; j++) {
Handle(DBRep_Face) aLocalFace = F;
case GeomAbs_Hyperbola :
case GeomAbs_BezierCurve :
case GeomAbs_BSplineCurve :
+ case GeomAbs_OffsetCurve :
case GeomAbs_OtherCurve :
for (j = 1; j <= myDiscret/2; j++) {
Handle(DBRep_Edge) aLocaLEdge(E);
case GeomAbs_Hyperbola:
case GeomAbs_BezierCurve:
case GeomAbs_BSplineCurve:
+ case GeomAbs_OffsetCurve:
case GeomAbs_OtherCurve:
const Standard_Integer nIter = myDiscret/2;
for (j = 1; j < nIter; j++)
case GeomAbs_Circle: {
switch(type2) {
+ case GeomAbs_Line: {
+ inverse = Standard_True;
+ Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Circle(C1), Tol);
+ Results(Xtrem, U11, U12, U21, U22, 2*M_PI, 0.);
+ }
+ break;
case GeomAbs_Circle: {
Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Circle(C1), Extrema_Curve2dTool::Circle(*((Adaptor2d_Curve2d*)myC)));
Results(Xtrem, U11, U12, U21, U22, 2*M_PI, 2*M_PI);
Results(Xtrem, U11, U12, U21, U22, 2*M_PI, 0. );
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_OtherCurve:
- case GeomAbs_BSplineCurve: {
+ default: {
Extrema_ECC2d aParamSolver(C1, *((Adaptor2d_Curve2d*)myC));
aParamSolver.SetSingleSolutionFlag(GetSingleSolutionFlag());
aParamSolver.Perform();
Results(aParamSolver, U11, U12, U21, U22, 2*M_PI,Period2);
}
break;
- case GeomAbs_Line: {
- inverse = Standard_True;
- Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Circle(C1), Tol);
- Results(Xtrem, U11, U12, U21, U22, 2*M_PI, 0.);
- }
- break;
}; // switch(type2)
}
break;
case GeomAbs_Ellipse: {
switch(type2) {
+ case GeomAbs_Line: {
+ inverse = Standard_True;
+ Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Ellipse(C1));
+ Results(Xtrem, U11, U12, U21, U22, 2*M_PI, 0.);
+ }
+ break;
case GeomAbs_Circle: {
inverse = Standard_True;
Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Circle(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Ellipse(C1));
Results(aParamSolver, U11, U12, U21, U22, 2*M_PI, 0.);
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_OtherCurve:
- case GeomAbs_BSplineCurve: {
+ default: {
Extrema_ECC2d aParamSolver(C1, *((Adaptor2d_Curve2d*)myC));
aParamSolver.SetSingleSolutionFlag(GetSingleSolutionFlag());
aParamSolver.Perform();
Results(aParamSolver, U11, U12, U21, U22, 2*M_PI,Period2);
}
break;
- case GeomAbs_Line: {
- inverse = Standard_True;
- Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Ellipse(C1));
- Results(Xtrem, U11, U12, U21, U22, 2*M_PI, 0.);
- }
- break;
}; // switch(type2)
}
break;
case GeomAbs_Parabola: {
switch(type2) {
+ case GeomAbs_Line: {
+ inverse = Standard_True;
+ Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Parabola(C1));
+ Results(Xtrem, U11, U12, U21, U22, 0., 0.);
+ }
+ break;
case GeomAbs_Circle: {
inverse = Standard_True;
Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Circle(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Parabola(C1));
Results(aParamSolver, U11, U12, U21, U22, 0., 0.);
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_OtherCurve:
- case GeomAbs_BSplineCurve: {
+ default: {
Extrema_ECC2d aParamSolver(C1, *((Adaptor2d_Curve2d*)myC));
aParamSolver.SetSingleSolutionFlag(GetSingleSolutionFlag());
aParamSolver.Perform();
Results(aParamSolver, U11, U12, U21, U22, 0., Period2);
}
break;
- case GeomAbs_Line: {
- inverse = Standard_True;
- Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Parabola(C1));
- Results(Xtrem, U11, U12, U21, U22, 0., 0.);
- }
- break;
}; // switch(type2)
}
break;
case GeomAbs_Hyperbola: {
switch(type2) {
+ case GeomAbs_Line: {
+ inverse = Standard_True;
+ Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Hyperbola(C1));
+ Results(Xtrem, U11, U12, U21, U22, 0., 0.);
+ }
+ break;
case GeomAbs_Circle: {
inverse = Standard_True;
Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Circle(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Hyperbola(C1));
Results(aParamSolver, U11, U12, U21, U22, 0., 0.);
}
break;
- case GeomAbs_OtherCurve:
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve: {
+ default: {
Extrema_ECC2d aParamSolver(C1, *((Adaptor2d_Curve2d*)myC));
aParamSolver.SetSingleSolutionFlag(GetSingleSolutionFlag());
aParamSolver.Perform();
Results(aParamSolver, U11, U12, U21, U22, 0., Period2);
}
break;
- case GeomAbs_Line: {
- inverse = Standard_True;
- Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(*((Adaptor2d_Curve2d*)myC)), Extrema_Curve2dTool::Hyperbola(C1));
- Results(Xtrem, U11, U12, U21, U22, 0., 0.);
- }
- break;
}; // switch(type2)
}
break;
- //
- // La premiere courbe est une BezierCurve ou une BSplineCurve:
- //
- case GeomAbs_BezierCurve:
- case GeomAbs_OtherCurve:
- case GeomAbs_BSplineCurve: {
- Extrema_ECC2d aParamSolver(C1, *((Adaptor2d_Curve2d*)myC));
- aParamSolver.SetSingleSolutionFlag(GetSingleSolutionFlag());
- aParamSolver.Perform();
- Standard_Real Period1 = 0.;
- if (Extrema_Curve2dTool::IsPeriodic(C1)) Period1 = Extrema_Curve2dTool::Period(C1);
- Standard_Real Period2 = 0.;
- if (Extrema_Curve2dTool::IsPeriodic(*((Adaptor2d_Curve2d*)myC))) Period2 = Extrema_Curve2dTool::Period(*((Adaptor2d_Curve2d*)myC));
- Results(aParamSolver, U11, U12, U21, U22, Period1, Period2);
- }
- break;
-
//
// La premiere courbe est une Line:
//
case GeomAbs_Line: {
switch(type2) {
+ case GeomAbs_Line: {
+ Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(C1), Extrema_Curve2dTool::Line(*((Adaptor2d_Curve2d*)myC)), Tol);
+ Results(Xtrem, U11, U12, U21, U22, 0., 0.);
+ }
+ break;
case GeomAbs_Circle: {
Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(C1), Extrema_Curve2dTool::Circle(*((Adaptor2d_Curve2d*)myC)), Tol);
Results(Xtrem, U11, U12, U21, U22, 0., 2*M_PI);
Results(Xtrem, U11, U12, U21, U22, 0., 0.);
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_OtherCurve:
- case GeomAbs_BSplineCurve: {
+ default: {
Extrema_ECC2d aParamSolver(C1, *((Adaptor2d_Curve2d*)myC));
aParamSolver.SetSingleSolutionFlag(GetSingleSolutionFlag());
aParamSolver.Perform();
Results(aParamSolver, U11, U12, U21, U22, 0., Period2);
}
break;
- case GeomAbs_Line: {
- Extrema_ExtElC2d Xtrem(Extrema_Curve2dTool::Line(C1), Extrema_Curve2dTool::Line(*((Adaptor2d_Curve2d*)myC)), Tol);
- Results(Xtrem, U11, U12, U21, U22, 0., 0.);
- }
- break;
}; // switch(type2)
}
break;
+ //
+ // La premiere courbe est une BezierCurve ou une BSplineCurve:
+ //
+ default: {
+ Extrema_ECC2d aParamSolver(C1, *((Adaptor2d_Curve2d*)myC));
+ aParamSolver.SetSingleSolutionFlag(GetSingleSolutionFlag());
+ aParamSolver.Perform();
+ Standard_Real Period1 = 0.;
+ if (Extrema_Curve2dTool::IsPeriodic(C1)) Period1 = Extrema_Curve2dTool::Period(C1);
+ Standard_Real Period2 = 0.;
+ if (Extrema_Curve2dTool::IsPeriodic(*((Adaptor2d_Curve2d*)myC))) Period2 = Extrema_Curve2dTool::Period(*((Adaptor2d_Curve2d*)myC));
+ Results(aParamSolver, U11, U12, U21, U22, Period1, Period2);
+ }
+ break;
+
};
}
{
case GeomAbs_BezierCurve:
case GeomAbs_BSplineCurve:
+ case GeomAbs_OffsetCurve:
case GeomAbs_OtherCurve:
myMaxDerivOrderC1 = MaxOrder;
myTolC1 = SearchOfTolerance((Standard_Address)&C1);
{
case GeomAbs_BezierCurve:
case GeomAbs_BSplineCurve:
+ case GeomAbs_OffsetCurve:
case GeomAbs_OtherCurve:
myMaxDerivOrderC2 = MaxOrder;
myTolC2 = SearchOfTolerance((Standard_Address)&C2);
{
case GeomAbs_BezierCurve:
case GeomAbs_BSplineCurve:
+ case GeomAbs_OffsetCurve:
case GeomAbs_OtherCurve:
myMaxDerivOrderC1 = MaxOrder;
myTolC1 = SearchOfTolerance((Standard_Address)&C);
{
case GeomAbs_BezierCurve:
case GeomAbs_BSplineCurve:
+ case GeomAbs_OffsetCurve:
case GeomAbs_OtherCurve:
myMaxDerivOrderC2 = MaxOrder;
myTolC2 = SearchOfTolerance((Standard_Address)&C);
{
case GeomAbs_BezierCurve:
case GeomAbs_BSplineCurve:
+ case GeomAbs_OffsetCurve:
case GeomAbs_OtherCurve:
myMaxDerivOrder = MaxOrder;
myTol = SearchOfTolerance();
{
case GeomAbs_BezierCurve:
case GeomAbs_BSplineCurve:
+ case GeomAbs_OffsetCurve:
case GeomAbs_OtherCurve:
myMaxDerivOrder = MaxOrder;
myTol = SearchOfTolerance();
mydone = Standard_True;
break;
}
- case GeomAbs_OtherCurve:
+ default:
{
Standard_Boolean IntExtIsDone = Standard_False;
Standard_Boolean IntIsNotValid;
// Postprocessing.
if (type == GeomAbs_BSplineCurve ||
+ type == GeomAbs_OffsetCurve ||
type == GeomAbs_OtherCurve)
{
// Additional checking if the point is on the first or last point of the curve
type = TheCurveTool::GetType(C);
Standard_Real tolu = TheCurveTool::Resolution(C, Precision::Confusion());
if ((type == GeomAbs_BSplineCurve) ||
- (type == GeomAbs_BezierCurve) ||
- (type == GeomAbs_OtherCurve)) {
+ (type == GeomAbs_BezierCurve) ||
+ (type == GeomAbs_OffsetCurve) ||
+ (type == GeomAbs_OtherCurve))
+ {
myLocExtPC.Initialize(C, Umin, Usup, tolu);
}
else {
switch(type)
{
case GeomAbs_OtherCurve:
+ case GeomAbs_OffsetCurve:
case GeomAbs_BSplineCurve:
{
// La recherche de l extremum est faite intervalle continu C2 par
if ((type == GeomAbs_BezierCurve)) {
d = myLocExtPC.SquareDistance();
}
- else if(type == GeomAbs_BSplineCurve || type == GeomAbs_OtherCurve) {
+ else if(type == GeomAbs_BSplineCurve ||
+ type == GeomAbs_OffsetCurve ||
+ type == GeomAbs_OtherCurve) {
d = mydist2;
}
else {
if ((type == GeomAbs_BezierCurve)) {
b = myLocExtPC.IsMin();
}
- else if(type == GeomAbs_BSplineCurve || type == GeomAbs_OtherCurve) {
+ else if(type == GeomAbs_BSplineCurve ||
+ type == GeomAbs_OffsetCurve ||
+ type == GeomAbs_OtherCurve) {
b = myismin;
}
else {
if (type == GeomAbs_BezierCurve) {
return myLocExtPC.Point();
}
- else if(type == GeomAbs_BSplineCurve || type == GeomAbs_OtherCurve) {
+ else if(type == GeomAbs_BSplineCurve ||
+ type == GeomAbs_OffsetCurve ||
+ type == GeomAbs_OtherCurve) {
return mypp;
}
return myExtremPC.Point(numberext);
}
break;
- case GeomAbs_OtherCurve:
+ default:
Standard_DomainError::Raise("Geom2dAdaptor::MakeCurve, OtherCurve");
}
}
else if ( TheType == STANDARD_TYPE(Geom2d_OffsetCurve))
{
- myTypeCurve = GeomAbs_OtherCurve;
+ myTypeCurve = GeomAbs_OffsetCurve;
// Create nested adaptor for base curve
Handle(Geom2d_Curve) aBase = Handle(Geom2d_OffsetCurve)::DownCast(myCurve)->BasisCurve();
myOffsetBaseCurveAdaptor = new Geom2dAdaptor_HCurve(aBase);
if (myTypeCurve == GeomAbs_BSplineCurve) {
return LocalContinuity(myFirst, myLast);
}
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom2d_OffsetCurve)){
+ else if (myTypeCurve == GeomAbs_OffsetCurve){
GeomAbs_Shape S =
Handle(Geom2d_OffsetCurve)::DownCast (myCurve)->GetBasisCurveContinuity();
switch(S){
}
}
}
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom2d_OffsetCurve)){
+ else if (myTypeCurve == GeomAbs_OffsetCurve){
GeomAbs_Shape BaseS=GeomAbs_C0;
switch(S){
case GeomAbs_G1:
}
}
}
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom2d_OffsetCurve)){
+ else if (myTypeCurve == GeomAbs_OffsetCurve){
GeomAbs_Shape BaseS=GeomAbs_C0;
switch(S){
case GeomAbs_G1:
{
if (myTypeCurve == GeomAbs_BSplineCurve)
return ValueBSpline(U);
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom2d_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
return ValueOffset(U);
return myCurve->Value(U);
D0BSpline(U, P);
return;
}
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom2d_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
{
D0Offset(U, P);
return;
D1BSpline(U, P, V);
return;
}
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom2d_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
{
D1Offset(U, P, V);
return;
D2BSpline(U, P, V1, V2);
return;
}
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom2d_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
{
D2Offset(U, P, V1, V2);
return;
D3BSpline(U, P, V1, V2, V3);
return;
}
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom2d_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
{
D3Offset(U, P, V1, V2, V3);
return;
{
if (myTypeCurve == GeomAbs_BSplineCurve)
return DNBSpline(U, N);
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom2d_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
return DNOffset(U, N);
return myCurve->DN(U, N);
ProjLib_ProjectedCurve Proj(HS,HC);
- if (Proj.GetType() != GeomAbs_OtherCurve) {
+ if (Proj.GetType() != GeomAbs_OffsetCurve &&
+ Proj.GetType() != GeomAbs_OtherCurve) {
result = Geom2dAdaptor::MakeCurve(Proj);
}
GeomAbs_Parabola,
GeomAbs_BezierCurve,
GeomAbs_BSplineCurve,
+GeomAbs_OffsetCurve,
GeomAbs_OtherCurve
};
C = Handle(Geom_BSplineCurve)::DownCast(HC.BSpline()->Copy());
break;
- case GeomAbs_OtherCurve:
+ default:
Standard_DomainError::Raise("GeomAdaptor::MakeCurve : OtherCurve");
}
myBspl->KnotSequence(), myBspl->Poles(), myBspl->Weights());
}
else if ( TheType == STANDARD_TYPE(Geom_OffsetCurve)) {
- myTypeCurve = GeomAbs_OtherCurve;
+ myTypeCurve = GeomAbs_OffsetCurve;
// Create nested adaptor for base curve
Handle(Geom_Curve) aBase = Handle(Geom_OffsetCurve)::DownCast(myCurve)->BasisCurve();
myOffsetBaseCurveAdaptor = new GeomAdaptor_HCurve(aBase);
if (myTypeCurve == GeomAbs_BSplineCurve)
return LocalContinuity(myFirst, myLast);
- if (myCurve->IsKind(STANDARD_TYPE(Geom_OffsetCurve)))
+ if (myTypeCurve == GeomAbs_OffsetCurve)
{
const GeomAbs_Shape S =
Handle(Geom_OffsetCurve)::DownCast (myCurve)->GetBasisCurveContinuity();
}
}
- else if (myCurve->IsKind(STANDARD_TYPE(Geom_OffsetCurve))){
+ else if (myTypeCurve == GeomAbs_OffsetCurve) {
GeomAbs_Shape BaseS=GeomAbs_C0;
switch(S){
case GeomAbs_G1:
}
}
- else if (myCurve->IsKind(STANDARD_TYPE(Geom_OffsetCurve))){
+ else if (myTypeCurve == GeomAbs_OffsetCurve){
GeomAbs_Shape BaseS=GeomAbs_C0;
switch(S){
case GeomAbs_G1:
{
if (myTypeCurve == GeomAbs_BSplineCurve)
return ValueBSpline(U);
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
return ValueOffset(U);
return myCurve->Value(U);
}
{
if (myTypeCurve == GeomAbs_BSplineCurve)
D0BSpline(U, P);
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
D0Offset(U, P);
else
myCurve->D0(U, P);
{
if (myTypeCurve == GeomAbs_BSplineCurve)
D1BSpline(U, P, V);
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
D1Offset(U, P, V);
else
myCurve->D1(U, P, V);
{
if (myTypeCurve == GeomAbs_BSplineCurve)
D2BSpline(U, P, V1, V2);
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
D2Offset(U, P, V1, V2);
else
myCurve->D2(U, P, V1, V2);
{
if (myTypeCurve == GeomAbs_BSplineCurve)
D3BSpline(U, P, V1, V2, V3);
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
D3Offset(U, P, V1, V2, V3);
else
myCurve->D3(U, P, V1, V2, V3);
{
if (myTypeCurve == GeomAbs_BSplineCurve)
return DNBSpline(U, N);
- else if (myCurve->DynamicType() == STANDARD_TYPE(Geom_OffsetCurve))
+ else if (myTypeCurve == GeomAbs_OffsetCurve)
return DNOffset(U, N);
return myCurve->DN(U, N);
case GeomAbs_Ellipse:
return P3d + myOX;
+
+ default: // implemented to avoid gcc compiler warnings
+ break;
}
return P3d;
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intconicurv.SetReversedParameters(Standard_False);
intconicurv.Perform(TheCurveTool::Line(C1),D1,
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intconicurv.SetReversedParameters(Standard_False);
intconicurv.Perform(TheCurveTool::Circle(C1),D1,
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intconicurv.SetReversedParameters(Standard_False);
intconicurv.Perform(TheCurveTool::Ellipse(C1),D1,
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intconicurv.SetReversedParameters(Standard_False);
intconicurv.Perform(TheCurveTool::Parabola(C1),D1,
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intconicurv.SetReversedParameters(Standard_False);
intconicurv.Perform(TheCurveTool::Hyperbola(C1),D1,
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
switch (typ2)
{
case GeomAbs_Line:
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intcurvcurv.SetReversedParameters(Standard_False);
intcurvcurv.Perform(C1,D1, C2,D2,TolConf,Tol);
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intconicurv.SetReversedParameters(Standard_False);
intconicurv.Perform(Lin1,D1,C2,D2,TolConf,Tol);
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intconicurv.SetReversedParameters(Standard_False);
intconicurv.Perform(Circ1,D1,C2,D2,TolConf,Tol);
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intconicurv.SetReversedParameters(Standard_False);
intconicurv.Perform(Elips1,D1,C2,D2,TolConf,Tol);
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intconicurv.SetReversedParameters(Standard_False);
intconicurv.Perform(Parab1,D1,C2,D2,TolConf,Tol);
}
break;
- case GeomAbs_BezierCurve:
- case GeomAbs_BSplineCurve:
- case GeomAbs_OtherCurve:
+ default:
{
intconicurv.SetReversedParameters(Standard_False);
intconicurv.Perform(Hyper1,D1,
}
if (aCurveType==GeomAbs_BSplineCurve||
aCurveType==GeomAbs_BezierCurve ||
+ aCurveType==GeomAbs_OffsetCurve ||
aCurveType==GeomAbs_Ellipse ||
aCurveType==GeomAbs_OtherCurve) { //modified by NIZNHY-PKV Fri Sep 24 09:52:42 2004ft
continue;
//
if((aCT==GeomAbs_BezierCurve) ||
(aCT==GeomAbs_BSplineCurve) ||
+ (aCT==GeomAbs_OffsetCurve) ||
(aCT==GeomAbs_OtherCurve)) {
return aresult;
}
break;
case GeomAbs_Hyperbola :
case GeomAbs_Parabola :
+ case GeomAbs_OffsetCurve :
case GeomAbs_OtherCurve :{
Standard_Real k, kMin, aDist, aDt, aT1, aT2, aT;
Standard_Integer aNbP, i;
Standard_Boolean CurvIsAnal = (CType != GeomAbs_BSplineCurve) &&
(CType != GeomAbs_BezierCurve) &&
+ (CType != GeomAbs_OffsetCurve) &&
(CType != GeomAbs_OtherCurve) ;
Standard_Boolean simplecase = SurfIsAnal && CurvIsAnal;
break;
case GeomAbs_BSplineCurve:
case GeomAbs_BezierCurve:
+ case GeomAbs_OffsetCurve:
case GeomAbs_OtherCurve: // try the approximation
break;
default:
case GeomAbs_BSplineCurve :
c2d = Projector.BSpline();
break;
- case GeomAbs_BezierCurve :
- case GeomAbs_OtherCurve :
+ default:
// Not possible, handling added to avoid gcc warning.
break;
}
case GeomAbs_Parabola : N = "PARABOLA"; break;
case GeomAbs_BezierCurve : N = "BEZIER"; break;
case GeomAbs_BSplineCurve : N = "BSPLINE"; break;
+ case GeomAbs_OffsetCurve : N = "OFFSET"; break;
case GeomAbs_OtherCurve : N = "OTHER"; break;
default : N = "UNKNOWN"; break;
}
case GeomAbs_Parabola : cout<<"PARABOLA"; break;
case GeomAbs_BezierCurve : cout<<"BEZIERCURVE"; break;
case GeomAbs_BSplineCurve : cout<<"BSPLINECURVE "<<GC.BSpline()->Degree(); break;
+ case GeomAbs_OffsetCurve : cout<<"OFFSETCURVE"; break;
case GeomAbs_OtherCurve : cout<<"OTHERCURVE"; break;
}
cout.flush();
case GeomAbs_Parabola : C2D = new Geom2d_Parabola(PC.Parabola()); break;
case GeomAbs_Hyperbola : C2D = new Geom2d_Hyperbola(PC.Hyperbola()); break;
case GeomAbs_BSplineCurve : C2D = PC.BSpline(); break;
- case GeomAbs_BezierCurve : case GeomAbs_OtherCurve : default :
+ default :
Standard_NotImplemented::Raise("CurveTool::MakePCurve");
break;
}