Class Ifc4::IfcTrimmedCurve¶
Defined in File Ifc4.h
Nested Relationships¶
This class is a nested type of Struct Ifc4.
Inheritance Relationships¶
Base Type¶
public Ifc4::IfcBoundedCurve
(Class Ifc4::IfcBoundedCurve)
Class Documentation¶
-
class
Ifc4
::
IfcTrimmedCurve
: public Ifc4::IfcBoundedCurve¶ Definition from ISO/CD 10303-42:1992: A trimmed curve is a bounded curve which is created by taking a selected portion, between two identified points, of the associated basis curve. The basis curve itself is unaltered and more than one trimmed curve may reference the same basis curve. Trimming points for the curve may be identified by: parametric value geometric position both of the above At least one of these shall be specified at each end of the curve. The SenseAgreement makes it possible to unambiguously define any segment of a closed curve such as a circle. The combinations of sense and ordered end points make it possible to define four distinct directed segments connecting two different points on a circle or other closed curve. For this purpose cyclic properties of the parameter range are assumed; for example, 370 degrees is equivalent to 10 degrees. The IfcTrimmedCurve has a parameterization which is inherited from the particular basis curve reference. More precisely the parameter s of the trimmed curve is derived from the parameter of the basis curve as follows: if SenseAgreement is TRUE: s = t - t1 if SenseAgreement is FALSE: s = t2 - t In the above equations t1 is the value given by Trim1 or the parameter value corresponding to point 1 and t2 is the value given by Trim2 or the parameter value corresponding to point 2. The resultant IfcTrimmedCurve has a parameter ranging from 0 at the first trimming point to |t2
t1| at the second trimming point. NOTE In case of a closed curve, it may be necessary to increment t1 or t2 by the parametric length for consistency with the sense flag.
NOTE Corresponding ISO 10303 entity: trimmed_curve; As a further IFC restriction, an IfcTrimmedCurve should only trim a IfcLine or IfcConic. Please refer to ISO/IS 10303-42:1994, p. 54 for the final definition of the formal standard.
HISTORY New class in IFC Release 1.0
Informal Propositions: Where both the parameter value and the Cartesian point exist for Trim1 and Trim2 they shall be consistent. (i.e., the BasisCurve evaluated at the parameter value shall coincide with the specified point). When a Cartesian point is specified by Trim1 or by Trim2 it shall lie on the BasisCurve. Except the case of a closed BasisCurve where both parameter 1 and parameter 2 exist, they shall be consistent with the sense flag, i.e., (sense = parameter 1 < parameter 2). Or, for every open curve where both parameter 1 and parameter 2 exist, they shall be consistent with the SenseAgreement, i.e., SenseAgreement = (parameter 1 < parameter 2). If both parameter 1 and parameter 2 exist, then parameter 1 <> parameter 2. For a closed base curve, e.g. IfcCircle or IfcEllipse, this also applies to the cyclic properties, as 360’ is equal to 0’, parameter 1 = 360’ and parameter 2 = 0’ are treated as being equal and therefore violating this proposition. When a parameter value is specified by Trim1 or Trim2 it shall lie within the parametric range of the BasisCurve. Additional illustration from IAI: The figure above shows the four arcs (dashed blue and green lines with arrow showing different orientations) that can be defined by the same BasisCurve (of type IfcCircle) and the same trimming points (given by Cartesian points and parameter values) by using different assignments to Trim1 and Trim2 and SenseAgreement.
Note: Since the BasisCurve is closed (type
IfcCircle), the exception of the informal proposition IP3 applies, i.e. the sense flag is not required to be consistent with the parameter values of Trim1 and Trim1, so the rule (sense = parameter 1 < parameter 2) may not be fulfilled.Public Types
-
typedef IfcTemplatedEntityList<IfcTrimmedCurve>
list
¶
Public Functions
-
::Ifc4::IfcCurve *
BasisCurve
() const¶ The curve to be trimmed. For curves with multiple representations any parameter values given as Trim1 or Trim2 refer to the master representation of the BasisCurve only.
-
IfcEntityList::ptr
Trim1
() const¶ The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
-
void
setTrim1
(IfcEntityList::ptr v)¶
-
IfcEntityList::ptr
Trim2
() const¶ The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
-
void
setTrim2
(IfcEntityList::ptr v)¶
-
bool
SenseAgreement
() const¶ Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
-
void
setSenseAgreement
(bool v)¶
-
::Ifc4::IfcTrimmingPreference::Value
MasterRepresentation
() const¶ Where both parameter and point are present at either end of the curve this indicates the preferred form.
-
void
setMasterRepresentation
(::Ifc4::IfcTrimmingPreference::Value v)¶
-
IfcTrimmedCurve
(IfcEntityInstanceData *e)¶
-
IfcTrimmedCurve
(::Ifc4::IfcCurve *v1_BasisCurve, IfcEntityList::ptr v2_Trim1, IfcEntityList::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4::IfcTrimmingPreference::Value v5_MasterRepresentation)¶