The SEDRIS Data Representation Model
APPENDIX B - Constraints
Model SRF

Definition

The following constraints apply.

  1. Consider a <Model> instance M specified in an SRF other than LSR.

    1. M shall be instanced only by <Geometry Model Instance> and/or <Feature Model Instance> instances specified in a matching SRF.

    2. The has_moving_parts field of M shall be set to SE_FALSE.

  2. Consider a <Model> instance M specified in an LSR SRF.

    1. If the has_units field of M is set to SE_FALSE, M shall not be referenced by any <Geometry Model Instance> or <Feature Model Instance> instances.

    2. If M is to be instanced into a non-LSR SRF by any <Geometry Model Instance> or <Feature Model Instance> instance, each such <Geometry Model Instance> instance and <Feature Model Instance> instance shall specify a <World Transformation> component.

    3. M cannot be instanced into another LSR SRF unless the target SRF has identical parameters to the parameters of M or the <Geometry Model Instance> instance or <Feature Model Instance> instance that references M has a <Transformation> component that maps the SRF of M into the target SRF.

    4. If the component tree of M contains any <LSR Transformation> instances that have <Control Link> components, and if M provides controlling <Variable> instances to those <Control Link> components such that they allow motion, the has_moving_parts field of M shall be set to SE_TRUE; otherwise, the has_moving_parts field of M shall be set to SE_FALSE.

    5. M shall not contain any <Reference Surface> instances.

  3. All <Location> instances in the component tree of a <Model> instance shall be expressed in the SRF specified by that <Model> instance.

Rationale

  1. A <Location> instance is not fully specified unless it falls within the scope of a DRM object specifying its SRF information.

  2. <Transformation> instances are required when a model instancing operation requires actual coordinate transformation or conversion.

  3. Consider a <Model> instance M with moving parts. A moving part is a portion of the component tree of M that is attached to that component tree by way of an <LSR Transformation> instance T specifying at least one rotation, translation, or scale operation subject to dynamic control by an appropriate <Control Link> instance. Consequently, M shall be specified in an LSR SRF, because <LSR Transformation> instances only occur in LSR SRFs.

  4. The intent of the constraint on <Model> instances specified in LSR SRFs and <Reference Surface> instances is to limit the level of complexity for a transmittal consumer. If and when the API directly supports elevation resolution for <Location 2D> instances, this constraint may be modified.

Example

  1. A <Model> instance defined in a geodetic SRF may only be instanced within an <Environment Root> instance with matching geodetic SRF parameters.

  2. A <Geometry Model Instance> instance in a geodetic SRF shall have a <World Transformation> component in order to instance a <Model> instance specified in a Local Space Rectangular SRF.

  3. If the SRF of a <Model> instance is LSR (2D or 3D), all <Location> instances under that <Model> instance shall be LSR (2D or 3D).

  4. Consider a <Model> instance defined in a 3D LSR SRF, such that it references a <Geometry Model Instance> instance via an <LSR Transformation> instance.

FAQs

Are <Model> instances in a transmittal restricted to use LSR SRFs and the SRFs found in the <Environment Root> instances of that transmittal?

No. A <Model Library> instance might be designed to be part of a multi-transmittal environment with <Geometry Model Instance> or <Feature Model Instance> instances occurring in other transmittals, so that the transmittal containing the <Model Library> instance itself might not have any <Environment Root> instances at all.

Why aren't model instance objects required to have <Transformation> components in all cases?

If no coordinate conversion or transformation is required between SRFs, and if (for LSR) the model instance is not being rotated or translated within the target SRF, a <Transformation> is unnecessary.

How is the elevation resolved for an <LSR 2D Location> instance in a <Model> instance specified in an LSR SRF?

See the <Reference Surface> class.


Prev: Model Reference Type Constraints. Next: Nested Primitive Geometry. Up:Index.