1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40:49 +03:00

0024660: Removing unused "generic" classes. Part 1

In scope of this issue next unused generic classes will be removed:

1) AppBlend_Line

2) AppBlend_SectionGenerator

3) AppCont_SurfLeastSquare

4) AppCont_TheLineTool

5) AppCont_TheSurfTool

6) AppParCurves_MLineToo

7) AppParCurves_Projection

8) ApproxInt_WLine

9) Approx_ComputeCSurface

10) Approx_TheLineTool

11) Blend_Iterator

12) Contap_ArcTool

13) Contap_SurfaceTool

14) Contap_TopolTool

15) Dynamic_EnumerationParameter

16) Dynamic_MethodInstance

17) Extrema_ExtPSOfRev

18) GProp_CurveTool

19) GProp_DomainTool

20) GProp_FaceTool
This commit is contained in:
dln
2014-02-18 12:44:54 +04:00
committed by apn
parent 67e1d45b60
commit 89f18cb939
64 changed files with 22 additions and 3522 deletions

View File

@@ -36,18 +36,7 @@ uses AppParCurves, Geom, math, StdFail, TCollection, TColStd, gp,
TColgp, Standard
is
deferred generic class TheLineTool; --- Template
---Purpose: Tool describing a continous MultiLine.
-- The MultiLine is described by a parameter.
deferred generic class TheSurfTool; --- Template
---Purpose: Tool describing a continous Surface.
-- The Surface is described by a couple of parameters.
is
-------------------------------
--- Algorithms:
@@ -62,12 +51,6 @@ is
---Purpose: makes an approximation of a continous Line described by
-- the tool TheLineTool.
generic class SurfLeastSquare;
---Purpose: makes an approximation of a continous Surface
-- described by the tool TheSurfaceTool.
------------------------------------------------------
--- Necessary class for approximation a function f(t):
------------------------------------------------------

View File

@@ -1,114 +0,0 @@
-- Created on: 1993-05-19
-- Created by: Laurent PAINNOT
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
generic class SurfLeastSquare from AppCont(Surface as any;
SurfTool as any)
---as TheSurfTool(Surface)
---Purpose:
uses Matrix from math,
Vector from math,
Constraint from AppParCurves,
MultiCurve from AppParCurves,
BezierSurface from Geom
raises NotDone from StdFail,
OutOfRange from Standard,
DimensionError from Standard
is
Create(Surf: Surface; U0, U1, V0, V1: Real;
FirstCons, LastUCons, LastVCons, LastCons: Constraint;
DegU, DegV: Integer; NbPoints: Integer = 12)
---Purpose: given a MultiLine, this algorithm computes the
-- approximation of a continous Surface into a bezier
-- Surface.
-- The algorithm minimizes the volume between the
-- Surface Surf and the Bezier Surface doing the
-- aproximation.
-- NbPoints * NbPoints are taken on the Surface Surf.
-- The Constraints are affected to the following points:
--
-- U0, V0 |--|---|---|---|---|---|-----| U1, V0
-- FirstCons | | | | | | | LastUCons
-- |--|---|---|---|---|---|-----|
-- |--|---|---|---|---|---|-----|
-- | | | | | | | |
-- U0, V1 |--|---|---|---|---|---|-----| U1, V1
-- LastVCons LastCons
returns SurfLeastSquare from AppCont
raises DimensionError from Standard;
IsDone(me)
---Purpose: returns True if all has been correctly done.
returns Boolean
is static;
Value(me: in out)
---Purpose: returns the result of the approximation.
-- An exception is raised if NotDone.
---C++: return const &
returns BezierSurface from Geom
raises NotDone from StdFail
is static;
Error(me; F: in out Real; MaxE3d: in out Real)
---Purpose: F is the sum of the square errors at each of the
-- NbPoints*NbPoints and MaxE3d is the maximum value
-- of these errors.
-- An exception is raised if NotDone.
raises NotDone from StdFail
is static;
fields
Done: Boolean;
SCU: BezierSurface from Geom;
DegreU: Integer;
DegreV: Integer;
Nbdiscret: Integer;
nbP: Integer;
PointsX: Matrix;
PointsY: Matrix;
PointsZ: Matrix;
PolesX: Vector;
PolesY: Vector;
PolesZ: Vector;
myUParam: Vector;
myVParam: Vector;
VBU: Matrix;
VBV: Matrix;
end SurfLeastSquare from AppCont;

View File

@@ -1,493 +0,0 @@
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
// Lpa, le 19/05/93
#ifndef DEB
#define No_Standard_OutOfRange
#define No_Standard_RangeError
#endif
#include <math_GaussPoints.hxx>
#include <math_Vector.hxx>
#include <math_Matrix.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <AppParCurves_MultiPoint.hxx>
#include <AppCont_ContMatrices.hxx>
#include <Standard_ConstructionError.hxx>
#include <Standard_NotImplemented.hxx>
#include <StdFail_NotDone.hxx>
#include <PLib.hxx>
static void InvMSurfMatrix(const Standard_Integer classeU,
const Standard_Integer classeV,
math_Matrix& InvM)
{
math_Matrix Inv1(1, classeU);
InvMMatrix(classeU, Inv1);
math_Matrix Inv2(1, classeV);
InvMMatrix(classeV, Inv2);
// math_Matrix InvM(1, classeU*classeV, 1, classeU*classeV);
Standard_Integer i, j, k, l;
for (i = 1; i <= classeU; i++) {
for (j= 1; j <= classeU; j++) {
for (k =1; k<= classeV; k++) {
for (l = 1; l<= classeV; l++) {
InvM(k+(i-1)*classeV,l+(j-1)*classeV) = Inv1(i,j)*Inv2(k,l);
}
}
}
}
}
static void MSurfMatrix(const Standard_Integer classeU,
const Standard_Integer classeV,
math_Matrix& M)
{
math_Matrix M1(1, classeU, 1, classeU);
MMatrix(classeU, M1);
math_Matrix M2(1, classeV, 1, classeV);
MMatrix(classeV, M2);
// math_Matrix M(1, classeU*classeV, 1, classeU*classeV);
Standard_Integer i, j, k, l;
for (i = 1; i <= classeU; i++) {
for (j= 1; j <= classeU; j++) {
for (k =1; k<= classeV; k++) {
for (l = 1; l<= classeV; l++) {
M(k+(i-1)*classeV,l+(j-1)*classeV) = M1(i,j)*M2(k,l);
}
}
}
}
}
AppCont_SurfLeastSquare::
AppCont_SurfLeastSquare(const Surface& Surf,
const Standard_Real U0,
const Standard_Real U1,
const Standard_Real V0,
const Standard_Real V1,
const AppParCurves_Constraint FirstCons,
const AppParCurves_Constraint LastUCons,
const AppParCurves_Constraint LastVCons,
const AppParCurves_Constraint LastCons,
const Standard_Integer DegU,
const Standard_Integer DegV,
const Standard_Integer NbPoints):
PointsX(1, NbPoints, 1 , NbPoints),
PointsY(1, NbPoints, 1 , NbPoints),
PointsZ(1, NbPoints, 1 , NbPoints),
PolesX(1, (DegU+1)*(DegV+1), 0.0),
PolesY(1, (DegU+1)*(DegV+1), 0.0),
PolesZ(1, (DegU+1)*(DegV+1), 0.0),
myUParam(1, NbPoints),
myVParam(1, NbPoints),
VBU(1, DegU+1, 1, NbPoints),
VBV(1, DegV+1, 1, NbPoints)
{
DegreU = DegU;
DegreV = DegV;
Nbdiscret = NbPoints;
Standard_Integer c, c1, c2, classeU = DegU+1, classeV = DegV+1;
Standard_Integer cla = classeU*classeV;
Standard_Integer bdeb = 1, bfin = cla, clav = cla-classeV+1;
Standard_Integer bint = 0, bint1 = 0, bint2 = 0, bintfin = 0;
Standard_Integer bint3 = 0, bint4 = 0, bint5 = 0, bint6 = 0;
Standard_Integer bint7 = 0, bint8 = 0;
math_Vector GaussP(1, NbPoints), GaussW(1, NbPoints);
Standard_Integer i, j, FirstP = 1, LastP = NbPoints;
Standard_Real U, dU, V, dV, ISS, Coeff, Coeff2;
Done = Standard_False;
gp_Pnt Pt;
gp_Vec VU, VV;
math_Vector BX(1, cla, 0.0),
BY(1, cla, 0.0),
BZ(1, cla, 0.0);
GaussP = GPoints(NbPoints);
GaussW = GWeights(NbPoints);
math_Vector TheWeights(1, NbPoints), VBParam(1, NbPoints);
dU = 0.5*(U1-U0);
dV = 0.5*(V1-V0);
// calcul et mise en ordre des parametres et des poids:
for (i = FirstP; i <= LastP; i++) {
U = 0.5*(U1+U0) + dU*GaussP(i);
V = 0.5*(V1+V0) + dV*GaussP(i);
if (i <= (NbPoints+1)/2) {
myUParam(LastP-i+1) = U;
myVParam(LastP-i+1) = V;
VBParam(LastP-i+1) = 0.5*(1 + GaussP(i));
TheWeights(LastP-i+1) = 0.5*GaussW(i);
}
else {
myUParam(i-(NbPoints+1)/2) = U;
myVParam(i-(NbPoints+1)/2) = V;
VBParam(i-(NbPoints+1)/2) = 0.5*(1 + GaussP(i));
TheWeights(i-(NbPoints+1)/2) = 0.5*GaussW(i);
}
}
// Stockage des Points de Gauss:
for (i = FirstP; i <= LastP; i++) {
U = myUParam(i);
for (j = FirstP; j <= LastP; j++) {
V = myVParam(j);
SurfTool::D0(Surf, U, V, Pt);
Pt.Coord(PointsX(i, j), PointsY(i, j), PointsZ(i, j));
}
}
// Calcul des VB ( fonctions de Bernstein):
for (i = 1; i <= classeU; i++) {
for (j = 1; j <= NbPoints; j++) {
VBU(i,j) = PLib::Binomial(classeU-1,i-1)*
Pow((1-VBParam(j)),classeU-i)*Pow(VBParam(j),i-1);
}
}
for (i = 1; i <= classeV; i++) {
for (j = 1; j <= NbPoints; j++) {
VBV(i,j) = PLib::Binomial(classeV-1,i-1)*
Pow((1-VBParam(j)),classeV-i)*Pow(VBParam(j),i-1);
}
}
// Traitement du second membre:
c = 0;
for (c1 = 1; c1 <= classeU; c1++) {
for (c2 = 1; c2 <= classeV; c2++) {
c++;
for (i = 1; i <= NbPoints; i++) {
for (j = 1; j <= NbPoints; j++) {
Coeff = TheWeights(i)*TheWeights(j)*VBU(c1, i)*VBV(c2, j);
BX(c) += PointsX(i, j)*Coeff;
BY(c) += PointsY(i, j)*Coeff;
BZ(c) += PointsZ(i, j)*Coeff;
}
}
}
}
math_Matrix InvM(1, classeU*classeV, 1, classeU*classeV);
InvMSurfMatrix(classeU, classeV, InvM);
TColgp_Array2OfPnt Poles(1, classeU, 1, classeV);
// Calcul des poles:
// =================
if (FirstCons == AppParCurves_NoConstraint &&
LastCons == AppParCurves_NoConstraint &&
LastUCons == AppParCurves_NoConstraint &&
LastVCons == AppParCurves_NoConstraint) {
for (i = 1; i <= cla; i++) {
for (j = 1; j <= cla; j++) {
ISS = InvM(i, j);
PolesX(i) += ISS * BX(j);
PolesY(i) += ISS * BY(j);
PolesZ(i) += ISS * BZ(j);
}
}
}
else {
// Traitement du second membre:
math_Matrix M(1, classeU*classeV, 1, classeU*classeV);
MSurfMatrix(classeU, classeV, M);
if (FirstCons == AppParCurves_PassPoint ||
FirstCons == AppParCurves_TangencyPoint) {
bdeb = 2;
SurfTool::D0(Surf, U0, V0, Pt);
Pt.Coord(PolesX(1), PolesY(1), PolesZ(1));
for (c = 1; c <= cla; c++) {
Coeff = M(c, 1);
BX(c) = BX(c) - PolesX(1)*Coeff;
BY(c) = BY(c) - PolesY(1)*Coeff;
BZ(c) = BZ(c) - PolesZ(1)*Coeff;
}
}
if (LastCons == AppParCurves_PassPoint ||
LastCons == AppParCurves_TangencyPoint) {
bfin = cla-1;
SurfTool::D0(Surf, U1, V1, Pt);
Pt.Coord(PolesX(cla), PolesY(cla), PolesZ(cla));
for (c = 1; c <= cla; c++) {
Coeff = M(c, cla);
BX(c) = BX(c) - PolesX(cla)*Coeff;
BY(c) = BY(c) - PolesY(cla)*Coeff;
BZ(c) = BZ(c) - PolesZ(cla)*Coeff;
}
}
if (LastUCons == AppParCurves_PassPoint ||
LastUCons == AppParCurves_TangencyPoint) {
bint++; bint1 = clav;
SurfTool::D0(Surf, U1, V0, Pt);
Pt.Coord(PolesX(clav), PolesY(clav), PolesZ(clav));
for (c = 1; c <= cla; c++) {
Coeff = M(c, clav);
BX(c) = BX(c) - PolesX(clav)*Coeff;
BY(c) = BY(c) - PolesY(clav)*Coeff;
BZ(c) = BZ(c) - PolesZ(clav)*Coeff;
}
}
if (LastVCons == AppParCurves_PassPoint ||
LastVCons == AppParCurves_TangencyPoint) {
bint++; bint2 = classeV;
SurfTool::D0(Surf, U0, V1, Pt);
Pt.Coord(PolesX(classeV), PolesY(classeV), PolesZ(classeV));
for (c = 1; c <= cla; c++) {
Coeff = M(c, classeV);
BX(c) = BX(c) - PolesX(classeV)*Coeff;
BY(c) = BY(c) - PolesY(classeV)*Coeff;
BZ(c) = BZ(c) - PolesZ(classeV)*Coeff;
}
}
if (FirstCons == AppParCurves_TangencyPoint) {
SurfTool::D1(Surf, U0, V0, Pt, VU, VV);
bdeb = 3; bint++; bint3 = classeV+1;
PolesX(bint3) = PolesX(1) + VU.X()/DegU*(U1-U0);
PolesY(bint3) = PolesY(1) + VU.Y()/DegU*(U1-U0);
PolesZ(bint3) = PolesZ(1) + VU.Z()/DegU*(U1-U0);
PolesX(2) = PolesX(1) + VV.X()/DegV*(V1-V0);
PolesY(2) = PolesY(1) + VV.Y()/DegV*(V1-V0);
PolesZ(2) = PolesZ(1) + VV.Z()/DegV*(V1-V0);
for (c = 1; c <= cla; c++) {
Coeff = M(c, 2); Coeff2 = M(c, bint3);
BX(c) = BX(c) - PolesX(2)*Coeff - PolesX(bint3)*Coeff2;
BY(c) = BY(c) - PolesY(2)*Coeff - PolesY(bint3)*Coeff2;
BZ(c) = BZ(c) - PolesZ(2)*Coeff - PolesZ(bint3)*Coeff2;
}
}
if (LastCons == AppParCurves_TangencyPoint) {
SurfTool::D1(Surf, U1, V1, Pt, VU, VV);
bfin = cla-2; bint++; bint4 = cla-classeV;
PolesX(bint4) = PolesX(cla) - VU.X()/DegU*(U1-U0);
PolesY(bint4) = PolesY(cla) - VU.Y()/DegU*(U1-U0);
PolesZ(bint4) = PolesZ(cla) - VU.Z()/DegU*(U1-U0);
PolesX(cla-1) = PolesX(cla) - VV.X()/DegV*(V1-V0);
PolesY(cla-1) = PolesY(cla) - VV.Y()/DegV*(V1-V0);
PolesZ(cla-1) = PolesZ(cla) - VV.Z()/DegV*(V1-V0);
for (c = 1; c <= cla; c++) {
Coeff = M(c, cla-1); Coeff2 = M(c, bint4);
BX(c) = BX(c) - PolesX(cla-1)*Coeff - PolesX(bint4)*Coeff2;
BY(c) = BY(c) - PolesY(cla-1)*Coeff - PolesY(bint4)*Coeff2;
BZ(c) = BZ(c) - PolesZ(cla-1)*Coeff - PolesZ(bint4)*Coeff2;
}
}
if (LastVCons == AppParCurves_TangencyPoint) {
SurfTool::D1(Surf, U0, V1, Pt, VU, VV);
bint += 2; bint5 = classeV-1; bint6 = 2*classeV;
PolesX(bint5) = PolesX(classeV) - VV.X()/DegV*(V1-V0);
PolesY(bint5) = PolesY(classeV) - VV.Y()/DegV*(V1-V0);
PolesZ(bint5) = PolesZ(classeV) - VV.Z()/DegV*(V1-V0);
PolesX(bint6) = PolesX(classeV) + VU.X()/DegU*(U1-U0);
PolesY(bint6) = PolesY(classeV) + VU.Y()/DegU*(U1-U0);
PolesZ(bint6) = PolesZ(classeV) + VU.Z()/DegU*(U1-U0);
for (c = 1; c <= cla; c++) {
Coeff = M(c, bint5); Coeff2 = M(c, bint6);
BX(c) = BX(c) - PolesX(bint5)*Coeff - PolesX(bint6)*Coeff2;
BY(c) = BY(c) - PolesY(bint5)*Coeff - PolesY(bint6)*Coeff2;
BZ(c) = BZ(c) - PolesZ(bint5)*Coeff - PolesZ(bint6)*Coeff2;
}
}
if (LastUCons == AppParCurves_TangencyPoint) {
SurfTool::D1(Surf, U1, V0, Pt, VU, VV);
bint += 2; bint7 = clav-classeV; bint8 = clav+1;
PolesX(bint8) = PolesX(clav) + VV.X()/DegV*(V1-V0);
PolesY(bint8) = PolesY(clav) + VV.Y()/DegV*(V1-V0);
PolesZ(bint8) = PolesZ(clav) + VV.Z()/DegV*(V1-V0);
PolesX(bint7) = PolesX(clav) - VU.X()/DegU*(U1-U0);
PolesY(bint7) = PolesY(clav) - VU.Y()/DegU*(U1-U0);
PolesZ(bint7) = PolesZ(clav) - VU.Z()/DegU*(U1-U0);
for (c = 1; c <= cla; c++) {
Coeff = M(c, bint8); Coeff2 = M(c, bint7);
BX(c) = BX(c)- PolesX(bint8)*Coeff - PolesX(bint7)*Coeff2;
BY(c) = BY(c)- PolesY(bint8)*Coeff - PolesY(bint7)*Coeff2;
BZ(c) = BZ(c)- PolesZ(bint8)*Coeff - PolesZ(bint7)*Coeff2;
}
}
math_Vector B2X(bdeb, bfin-bint, 0.0);
math_Vector B2Y(bdeb, bfin-bint, 0.0);
math_Vector B2Z(bdeb, bfin-bint, 0.0);
Standard_Integer i2 = bdeb;
for (i = bdeb; i <= bfin; i++) {
if (i != bint1 && i != bint2 && i != bint3 && i != bint4 &&
i != bint5 && i != bint6 && i != bint7 && i != bint8) {
for (j = 1; j <= cla; j++) {
Coeff = M(i, j);
B2X(i2) = B2X(i2) + BX(j)*Coeff;
B2Y(i2) = B2Y(i2) + BY(j)*Coeff;
B2Z(i2) = B2Z(i2) + BZ(j)*Coeff;
}
i2 ++;
}
}
math_Matrix MP(1, cla, bdeb, bfin-bint);
math_Matrix IBP(bdeb, bfin-bint, bdeb, bfin-bint);
Standard_Integer j2 = bdeb;
for (i = 1; i <= cla; i++) {
j2 = bdeb;
for (j = bdeb; j <= bfin; j++) {
if (j != bint1 && j != bint2 && j != bint3 && j != bint4 &&
j != bint5 && j != bint6 && j != bint7 && j != bint8) {
MP(i, j2) = M(i, j);
j2++;
}
}
}
math_Matrix IBP1 = MP.Transposed()*MP;
IBP = IBP1.Inverse();
i2 = bdeb;
for (i = bdeb; i <= bfin; i++) {
if (i != bint1 && i != bint2 && i != bint3 && i != bint4 &&
i != bint5 && i != bint6 && i != bint7 && i != bint8) {
for (j = bdeb; j <= bfin-bint; j++) {
ISS = IBP(i2, j);
PolesX(i) += ISS * B2X(j);
PolesY(i) += ISS * B2Y(j);
PolesZ(i) += ISS * B2Z(j);
}
i2++;
}
}
}
for (j = 1; j <= classeV; j++) {
for (i = 1; i <= classeU; i++) {
Poles(i, j).SetCoord(PolesX(j+ (i-1)*classeV),
PolesY(j+ (i-1)*classeV),
PolesZ(j+ (i-1)*classeV));
}
}
SCU = new Geom_BezierSurface(Poles);
Done = Standard_True;
}
Standard_Boolean AppCont_SurfLeastSquare::IsDone() const
{
return Done;
}
const Handle(Geom_BezierSurface)& AppCont_SurfLeastSquare::Value()
{
return SCU;
}
void AppCont_SurfLeastSquare::Error(Standard_Real& F,
Standard_Real& MaxE3d) const
{
Standard_Integer i, j, c, cu, cv, classeU = DegreU+1, classeV = DegreV+1;
Standard_Real Coeff, err3d = 0.0;
math_Matrix MyPointsX(1, Nbdiscret, 1, Nbdiscret);
math_Matrix MyPointsY(1, Nbdiscret, 1, Nbdiscret);
math_Matrix MyPointsZ(1, Nbdiscret, 1, Nbdiscret);
MyPointsX = PointsX;
MyPointsY = PointsY;
MyPointsZ = PointsZ;
MaxE3d = 0.0;
F = 0.0;
c = 0;
for (cu = 1; cu <= classeU; cu++) {
for (cv = 1; cv <= classeV; cv++) {
c++;
for (i = 1; i <= Nbdiscret; i++) {
for (j = 1; j <= Nbdiscret; j++) {
Coeff = VBU(cu, i)*VBV(cv, j);
MyPointsX(i, j) = MyPointsX(i, j) - PolesX(c)*Coeff;
MyPointsY(i, j) = MyPointsY(i, j) - PolesY(c)*Coeff;
MyPointsZ(i, j) = MyPointsZ(i, j) - PolesZ(c)*Coeff;
}
}
}
}
for (i = 1; i <= Nbdiscret; i++) {
for (j = 1; j <= Nbdiscret; j++) {
err3d = MyPointsX(i, j) * MyPointsX(i, j) +
MyPointsY(i, j) * MyPointsY(i, j) +
MyPointsZ(i, j) * MyPointsZ(i, j);
MaxE3d = Max(MaxE3d, err3d);
F += err3d;
}
}
MaxE3d = Sqrt(MaxE3d);
}

View File

@@ -1,85 +0,0 @@
-- Created on: 1993-04-22
-- Created by: Laurent PAINNOT
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
deferred generic class TheLineTool from AppCont(MLine as any)
---Purpose: Template for desribing a continuous MultiLine.
-- The Vectors returned by the methods Tangency are
-- the derivative values.
uses
Pnt from gp,
Pnt2d from gp,
Vec from gp,
Vec2d from gp,
Array1OfPnt from TColgp,
Array1OfPnt2d from TColgp,
Array1OfVec from TColgp,
Array1OfVec2d from TColgp
is
FirstParameter(myclass; ML: MLine) returns Real;
---Purpose: returns the first parameter of the Line.
LastParameter(myclass; ML: MLine) returns Real;
---Purpose: returns the last parameter of the Line.
NbP2d(myclass; ML: MLine) returns Integer;
---Purpose: Returns the number of 2d points of a MLine.
NbP3d(myclass; ML: MLine) returns Integer;
---Purpose: Returns the number of 3d points of a MLine.
Value(myclass; ML: MLine; U: Real; tabPt: out Array1OfPnt);
---Purpose: returns the 3d points of the multipoint <MPointIndex>
-- when only 3d points exist.
Value(myclass; ML: MLine; U: Real; tabPt2d: out Array1OfPnt2d);
---Purpose: returns the 2d points of the multipoint <MPointIndex>
-- when only 2d points exist.
Value(myclass; ML: MLine; U: Real;
tabPt: out Array1OfPnt; tabPt2d: out Array1OfPnt2d);
---Purpose: returns the 3d and 2d points of the multipoint
-- <MPointIndex>.
D1(myclass; ML: MLine; U: Real; tabV: out Array1OfVec)
returns Boolean;
---Purpose: returns the 3d derivative values of the multipoint
-- <MPointIndex> when only 3d points exist.
D1(myclass; ML: MLine; U: Real; tabV2d: out Array1OfVec2d)
returns Boolean;
---Purpose: returns the 2d derivative values of the multipoint
-- <MPointIndex> only when 2d points exist.
D1(myclass; ML: MLine; U: Real;
tabV: out Array1OfVec; tabV2d: out Array1OfVec2d)
returns Boolean;
---Purpose: returns the 3d and 2d derivative values of the multipoint
-- <MPointIndex>.
end TheLineTool;

View File

@@ -1,13 +0,0 @@
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.

View File

@@ -1,36 +0,0 @@
-- Created on: 1993-04-28
-- Created by: Laurent PAINNOT
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
deferred generic class TheSurfTool from AppCont(Surf as any)
---Purpose: Template for describing a continuous surface.
uses Pnt from gp,
Vec from gp
is
D0(myclass; S: Surf; U, V: Real; Pt: out Pnt);
---Purpose: returns the point of the surface at <U, V>.
D1(myclass; S: Surf; U, V: Real; Pt: out Pnt; V1U, V1V: out Vec);
---Purpose: returns the derivative and the point values of the surface
-- at the parameters <U, V> .
end TheSurfTool;

View File

@@ -1,13 +0,0 @@
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.