zoukankan      html  css  js  c++  java
  • IfcRationalBSplineCurveWithKnots

    带节有理B样条曲线是用控制点和基本函数描述的B样条曲线。它描述了除了在超类型ifcbsprinecurve中定义的控制点之外的权重。

    所有权重应为正,曲线由以下公式给出:

    where

    k+1 number of control points
    Pi control points
    wi weights
    d degree

    注:实体改编自ISO 10303-42中的有理曲线。

    IFC4中增加的新实体。

    Formal Propositions

    RuleDescription
    SameNumOfWeightsAndPoints There shall be the same number of weights as control points.
    WeightsGreaterZero All the weights shall have values greater than 0.0.
     

    #AttributeTypeCardinalityDescriptionC
    IfcRepresentationItem
      LayerAssignment IfcPresentationLayerAssignment
    @AssignedItems
    S[0:1] Assignment of the representation item to a single or multiple layer(s). The LayerAssignments can override a LayerAssignments of the IfcRepresentation it is used within the list of Items. X
      StyledByItem IfcStyledItem
    @Item
    S[0:1] Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve. X
    IfcGeometricRepresentationItem
    IfcCurve
      Dim
    :=IfcCurveDim(SELF)
    IfcDimensionCount [1:1] The space dimensionality of this abstract class, defined differently for all subtypes, i.e. for IfcLine, IfcConic and IfcBoundedCurve. X
    IfcBoundedCurve
    IfcBSplineCurve
    1 Degree IfcInteger [1:1] The algebraic degree of the basis functions. X
    2 ControlPointsList IfcCartesianPoint L[2:?] The list of control points for the curve. X
    3 CurveForm IfcBSplineCurveForm [1:1] Used to identify particular types of curve; it is for information only. X
    4 ClosedCurve IfcLogical [1:1] Indication of whether the curve is closed; it is for information only. X
    5 SelfIntersect IfcLogical [1:1] Indication whether the curve self-intersects or not; it is for information only. X
      UpperIndexOnControlPoints
    :=(SIZEOF(ControlPointsList) - 1)
    IfcInteger [1:1] The upper index on the array of control points; the lower index is 0. This value is derived from the control points list. X
      ControlPoints
    :=IfcListToArray(ControlPointsList,0,UpperIndexOnControlPoints)
    IfcCartesianPoint A[0:UpperIndexOnControlPoints] The array of control points used to define the geometry of the curve. This is derived from the list of control points. X
    IfcBSplineCurveWithKnots
    6 KnotMultiplicities IfcInteger L[2:?] The multiplicities of the knots. This list defines the number of times each knot in the knots list is to be repeated in constructing the knot array. X
    7 Knots IfcParameterValue L[2:?] The list of distinct knots used to define the B-spline basis functions. X
    8 KnotSpec IfcKnotType [1:1] The description of the knot type. This is for information only. X
      UpperIndexOnKnots
    :=SIZEOF(Knots)
    IfcInteger [1:1] The upper index on the knot arrays; the lower index is 1. X
    IfcRationalBSplineCurveWithKnots
    9 WeightsData IfcReal L[2:?] The supplied values of the weights. X
      Weights
    :=IfcListToArray(WeightsData,0,SELFIfcBSplineCurve.UpperIndexOnControlPoints)
    IfcReal A[0:UpperIndexOnControlPoints] The array of weights associated with the control points. This is derived from the weights data. X
    EXPRESS Specification
    ENTITY IfcRationalBSplineCurveWithKnots
     SUBTYPE OF (IfcBSplineCurveWithKnots);
      WeightsData : LIST [2:?] OF IfcReal;
     DERIVE
      Weights : ARRAY [0:UpperIndexOnControlPoints] OF IfcReal := IfcListToArray(WeightsData,0,SELFIfcBSplineCurve.UpperIndexOnControlPoints);
     WHERE
      SameNumOfWeightsAndPoints : SIZEOF(WeightsData) = SIZEOF(SELFIfcBSplineCurve.ControlPointsList);
      WeightsGreaterZero : IfcCurveWeightsPositive(SELF);
    END_ENTITY;
  • 相关阅读:
    知社 —— 第 4 次站立式会议(04-28)
    知社 —— 第 3 次站立式会议(04-27)
    知社 —— 第 2 次站立式会议(04-26)
    知社 —— 第 1 次站立式会议(04-25)
    团队代码规范、冲刺任务与计划
    团队作业第四次 — 项目系统设计与数据库设计
    团队作业第三次 — 项目需求分析
    第01组 Alpha冲刺(5/6)
    2019 SDN上机第4次作业
    2019 SDN阅读作业
  • 原文地址:https://www.cnblogs.com/herd/p/13217419.html
Copyright © 2011-2022 走看看