mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
Redundant keyword 'mutable' removed in CDL files. In IGESConvGeom_GeomBuilder, unused methods MakeXY() and MakeXYZ() removed. Method StepAP214_AutoDesignGroupAssignment::Init() replicating same method of the base class is removed as it causes CDL extraction error after above (seemingly irrelevant) changes.
336 lines
12 KiB
Plaintext
336 lines
12 KiB
Plaintext
-- Created on: 1993-03-24
|
|
-- Created by: JCV
|
|
-- 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.
|
|
|
|
class Hyperbola from Geom2d inherits Conic from Geom2d
|
|
|
|
--- Purpose : Describes a branch of a hyperbola in the plane (2D space).
|
|
-- A hyperbola is defined by its major and minor radii
|
|
-- and, as with any conic curve, is positioned in the
|
|
-- plane with a coordinate system (gp_Ax22d object) where:
|
|
-- - the origin is the center of the hyperbola,
|
|
-- - the "X Direction" defines the major axis, and
|
|
-- - the "Y Direction" defines the minor axis.
|
|
-- This coordinate system is the local coordinate
|
|
-- system of the hyperbola.
|
|
-- The branch of the hyperbola described is the one
|
|
-- located on the positive side of the major axis.
|
|
-- The orientation (direct or indirect) of the local
|
|
-- coordinate system gives an explicit orientation to the
|
|
-- hyperbola, determining the direction in which the
|
|
-- parameter increases along the hyperbola.
|
|
-- The Geom2d_Hyperbola hyperbola is parameterized as follows:
|
|
-- P(U) = O + MajRad*Cosh(U)*XDir + MinRad*Sinh(U)*YDir
|
|
-- where:
|
|
-- - P is the point of parameter U,
|
|
-- - O, XDir and YDir are respectively the origin, "X
|
|
-- Direction" and "Y Direction" of its local coordinate system,
|
|
-- - MajRad and MinRad are the major and minor radii of the hyperbola.
|
|
-- The "X Axis" of the local coordinate system therefore
|
|
-- defines the origin of the parameter of the hyperbola.
|
|
-- The parameter range is ] -infinite,+infinite [.
|
|
-- The following diagram illustrates the respective
|
|
-- positions, in the plane of the hyperbola, of the three
|
|
-- branches of hyperbolas constructed using the
|
|
-- functions OtherBranch, ConjugateBranch1 and
|
|
-- ConjugateBranch2:
|
|
-- ^YAxis
|
|
-- |
|
|
-- FirstConjugateBranch
|
|
-- |
|
|
-- Other | Main
|
|
-- --------------------- C
|
|
-- --------------------->XAxis
|
|
-- Branch |
|
|
-- Branch
|
|
-- |
|
|
-- SecondConjugateBranch
|
|
-- |
|
|
-- Warning
|
|
-- The value of the major radius (on the major axis) can
|
|
-- be less than the value of the minor radius (on the minor axis).
|
|
-- See Also
|
|
-- GCE2d_MakeHyperbola which provides functions for
|
|
-- more complex hyperbola constructions
|
|
-- gp_Ax22d
|
|
-- gp_Hypr2d for an equivalent, non-parameterized data structure
|
|
|
|
|
|
uses Ax2d from gp,
|
|
Ax22d from gp,
|
|
Hypr2d from gp,
|
|
Pnt2d from gp,
|
|
Trsf2d from gp,
|
|
Vec2d from gp,
|
|
Geometry from Geom2d
|
|
|
|
|
|
raises ConstructionError from Standard,
|
|
DomainError from Standard,
|
|
RangeError from Standard
|
|
|
|
|
|
is
|
|
|
|
Create (H : Hypr2d) returns Hyperbola;
|
|
--- Purpose : Creates an Hyperbola from a non persistent one from package gp
|
|
|
|
|
|
Create (MajorAxis : Ax2d; MajorRadius, MinorRadius : Real;
|
|
Sense: Boolean from Standard = Standard_True)
|
|
returns Hyperbola
|
|
--- Purpose :
|
|
-- MajorAxis is the "XAxis" of the hyperbola.
|
|
-- The YAxis is in the direct sense if "Sense" is True;
|
|
-- The major radius of the hyperbola is on this "XAxis" and
|
|
-- the minor radius is on the "YAxis" of the hyperbola.
|
|
raises ConstructionError;
|
|
--- Purpose : Raised if MajorRadius < 0.0 or if MinorRadius < 0.0
|
|
|
|
Create (Axis : Ax22d; MajorRadius, MinorRadius : Real)
|
|
returns Hyperbola
|
|
--- Purpose :
|
|
-- The XDirection of "Axis" is the "XAxis" of the hyperbola and
|
|
-- the YDirection of "Axis" is the "YAxis".
|
|
-- The major radius of the hyperbola is on this "XAxis" and
|
|
-- the minor radius is on the "YAxis" of the hyperbola.
|
|
raises ConstructionError;
|
|
--- Purpose : Raised if MajorRadius < 0.0 or if MinorRadius < 0.0
|
|
|
|
|
|
|
|
SetHypr2d (me : mutable; H : Hypr2d);
|
|
--- Purpose: Converts the gp_Hypr2d hyperbola H into this hyperbola.
|
|
|
|
|
|
|
|
SetMajorRadius (me : mutable; MajorRadius : Real)
|
|
raises ConstructionError;
|
|
---Purpose : Assigns a value to the major or minor radius of this hyperbola.
|
|
-- Exceptions
|
|
-- Standard_ConstructionError if:
|
|
-- - MajorRadius is less than 0.0,
|
|
-- - MinorRadius is less than 0.0.
|
|
|
|
SetMinorRadius (me : mutable; MinorRadius : Real)
|
|
raises ConstructionError;
|
|
--- Purpose : Assigns a value to the major or minor radius of this hyperbola.
|
|
-- Exceptions
|
|
-- Standard_ConstructionError if:
|
|
-- - MajorRadius is less than 0.0,
|
|
-- - MinorRadius is less than 0.0.
|
|
|
|
Hypr2d (me) returns Hypr2d;
|
|
--- Purpose : Converts this hyperbola into a gp_Hypr2d one.
|
|
|
|
|
|
|
|
ReversedParameter(me; U : Real) returns Real is redefined static;
|
|
---Purpose: Computes the parameter on the reversed hyperbola,
|
|
-- for the point of parameter U on this hyperbola.
|
|
-- For a hyperbola, the returned value is -U.
|
|
|
|
|
|
FirstParameter (me) returns Real is redefined static;
|
|
--- Purpose : Returns RealFirst from Standard.
|
|
|
|
|
|
LastParameter (me) returns Real is redefined static;
|
|
--- Purpose : returns RealLast from Standard.
|
|
|
|
|
|
IsClosed (me) returns Boolean is redefined static;
|
|
--- Purpose : Returns False.
|
|
|
|
|
|
IsPeriodic (me) returns Boolean is redefined static;
|
|
--- Purpose : return False for an hyperbola.
|
|
|
|
|
|
Asymptote1 (me) returns Ax2d
|
|
--- Purpose :
|
|
-- In the local coordinate system of the hyperbola the
|
|
-- equation of the hyperbola is (X*X)/(A*A) - (Y*Y)/(B*B) = 1.0
|
|
-- and the equation of the first asymptote is Y = (B/A)*X
|
|
-- where A is the major radius of the hyperbola and B is the
|
|
-- minor radius of the hyperbola.
|
|
raises ConstructionError;
|
|
--- Purpose : Raised if MajorRadius = 0.0
|
|
|
|
|
|
Asymptote2 (me) returns Ax2d
|
|
--- Purpose :
|
|
-- In the local coordinate system of the hyperbola the
|
|
-- equation of the hyperbola is (X*X)/(A*A) - (Y*Y)/(B*B) = 1.0
|
|
-- and the equation of the first asymptote is Y = -(B/A)*X.
|
|
-- where A is the major radius of the hyperbola and B is the
|
|
-- minor radius of the hyperbola.
|
|
raises ConstructionError;
|
|
--- Purpose : raised if MajorRadius = 0.0
|
|
|
|
|
|
ConjugateBranch1 (me) returns Hypr2d;
|
|
--- Purpose : Computes the first conjugate branch relative to this hyperbola.
|
|
-- Note: The diagram given under the class purpose
|
|
-- indicates where these two branches of hyperbola are
|
|
-- positioned in relation to this branch of hyperbola.
|
|
|
|
ConjugateBranch2 (me) returns Hypr2d;
|
|
--- Purpose : Computes the second conjugate branch relative to this hyperbola.
|
|
-- Note: The diagram given under the class purpose
|
|
-- indicates where these two branches of hyperbola are
|
|
-- positioned in relation to this branch of hyperbola.
|
|
|
|
|
|
Directrix1 (me) returns Ax2d;
|
|
--- Purpose :
|
|
-- This directrix is the line normal to the XAxis of the hyperbola
|
|
-- in the local plane (Z = 0) at a distance d = MajorRadius / e
|
|
-- from the center of the hyperbola, where e is the eccentricity of
|
|
-- the hyperbola.
|
|
-- This line is parallel to the "YAxis". The intersection point
|
|
-- between directrix1 and the "XAxis" is the location point of the
|
|
-- directrix1. This point is on the positive side of the "XAxis".
|
|
|
|
|
|
Directrix2 (me) returns Ax2d;
|
|
--- Purpose :
|
|
-- This line is obtained by the symmetrical transformation
|
|
-- of "Directrix1" with respect to the "YAxis" of the hyperbola.
|
|
|
|
|
|
Eccentricity (me) returns Real
|
|
--- Purpose :
|
|
-- Returns the excentricity of the hyperbola (e > 1).
|
|
-- If f is the distance between the location of the hyperbola
|
|
-- and the Focus1 then the eccentricity e = f / MajorRadius.
|
|
raises DomainError is redefined static;
|
|
--- Purpose : raised if MajorRadius = 0.0
|
|
|
|
|
|
Focal (me) returns Real;
|
|
--- Purpose :
|
|
-- Computes the focal distance. It is the distance between the
|
|
-- two focus of the hyperbola.
|
|
|
|
|
|
Focus1 (me) returns Pnt2d;
|
|
--- Purpose :
|
|
-- Returns the first focus of the hyperbola. This focus is on the
|
|
-- positive side of the "XAxis" of the hyperbola.
|
|
|
|
|
|
Focus2 (me) returns Pnt2d;
|
|
--- Purpose :
|
|
-- Returns the second focus of the hyperbola. This focus is on the
|
|
-- negative side of the "XAxis" of the hyperbola.
|
|
|
|
|
|
MajorRadius (me) returns Real;
|
|
---Purpose: Returns the major or minor radius of this hyperbola.
|
|
-- The major radius is also the distance between the
|
|
-- center of the hyperbola and the apex of the main
|
|
-- branch (located on the "X Axis" of the hyperbola).
|
|
|
|
|
|
MinorRadius (me) returns Real;
|
|
---Purpose: Returns the major or minor radius of this hyperbola.
|
|
-- The minor radius is also the distance between the
|
|
-- center of the hyperbola and the apex of a conjugate
|
|
-- branch (located on the "Y Axis" of the hyperbola).
|
|
|
|
OtherBranch (me) returns Hypr2d;
|
|
--- Purpose :
|
|
-- Computes the "other" branch of this hyperbola. This
|
|
-- is a symmetrical branch with respect to the center of this hyperbola.
|
|
-- Note: The diagram given under the class purpose
|
|
-- indicates where the "other" branch is positioned in
|
|
-- relation to this branch of the hyperbola.
|
|
-- ^ YAxis
|
|
-- |
|
|
-- FirstConjugateBranch
|
|
-- |
|
|
-- Other | Main
|
|
-- ---------------------------- C
|
|
-- ------------------------------------------>XAxis
|
|
-- Branch | Branch
|
|
-- |
|
|
-- |
|
|
-- SecondConjugateBranch
|
|
-- |
|
|
-- Warning
|
|
-- The major radius can be less than the minor radius.
|
|
|
|
Parameter (me) returns Real
|
|
--- Purpose : Computes the parameter of this hyperbola.
|
|
-- The parameter is:
|
|
-- p = (e*e - 1) * MajorRadius
|
|
-- where e is the eccentricity of this hyperbola and
|
|
-- MajorRadius its major radius.
|
|
-- Exceptions
|
|
-- Standard_DomainError if the major radius of this
|
|
-- hyperbola is null.
|
|
raises DomainError;
|
|
|
|
|
|
D0(me; U : Real; P : out Pnt2d) is redefined static;
|
|
---Purpose: Returns in P the point of parameter U.
|
|
-- P = C + MajorRadius * Cosh (U) * XDir +
|
|
-- MinorRadius * Sinh (U) * YDir
|
|
-- where C is the center of the hyperbola , XDir the XDirection and
|
|
-- YDir the YDirection of the hyperbola's local coordinate system.
|
|
|
|
|
|
D1 (me; U : Real; P : out Pnt2d; V1 : out Vec2d) is redefined static;
|
|
--- Purpose :
|
|
-- Returns the point P of parameter U and the first derivative V1.
|
|
|
|
|
|
D2 (me; U : Real; P : out Pnt2d; V1, V2 : out Vec2d) is redefined static;
|
|
--- Purpose :
|
|
-- Returns the point P of parameter U, the first and second
|
|
-- derivatives V1 and V2.
|
|
|
|
|
|
D3 (me; U : Real; P : out Pnt2d; V1, V2, V3 : out Vec2d) is redefined static;
|
|
--- Purpose :
|
|
-- Returns the point P of parameter U, the first second and
|
|
-- third derivatives V1 V2 and V3.
|
|
|
|
|
|
|
|
DN (me; U : Real; N : Integer) returns Vec2d
|
|
--- Purpose : For the point of parameter U of this hyperbola,
|
|
-- computes the vector corresponding to the Nth derivative.
|
|
-- Exceptions Standard_RangeError if N is less than 1.
|
|
raises RangeError is redefined static;
|
|
|
|
|
|
|
|
Transform (me : mutable; T : Trsf2d) is redefined static;
|
|
|
|
---Purpose: Applies the transformation T to this hyperbola.
|
|
|
|
Copy (me) returns like me is redefined static;
|
|
---Purpose: Creates a new object which is a copy of this hyperbola.
|
|
|
|
fields
|
|
|
|
majorRadius : Real;
|
|
minorRadius : Real;
|
|
|
|
end;
|
|
|