A Survey of Implicit Constraints in Primitives

From BRL-CAD
Revision as of 08:00, 5 August 2008 by Sean (talk | contribs) (sph (Sphere))
Design icon.png This page contains the design document for an enhancement or feature. The design should be considered a work in progress and may not represent the final design. As this is a collaborative design, contributions and participation from other developers and users is encouraged. Use the discussion page for providing comments and suggestions.

Types of Implicit Parameters

At the level of constraint networks, calculations are done in terms of Variables or indpendent real values / floating point numbers. But in the construction of geometry these are clustered together in terms of implicit parameters. Typical implicit parameters are

  1. Vectors - A 3 dimensional vector is a 3-tuple which is used to hold direction as well as magnitude. In BRL-CAD primitives, they may represent
    1. Radius vectors ( Center of a sphere)
    2. Direction vectors (Direction of a plane)

Types of Implicit Constraints

An enumeration of the set of contraints observed in the primitives below

  1. Modulus Comparison : Comparison of the modulus of a vector to a real number ( 0 for non-negativity ) or the modulus of another vector
  2. Perpendicularity of Vectors

Implict Constraints by Primitive

ell (Ellipse)

Ellipse is built using the Center (radius vector V) and 3 Vectors (A, B, C st. |A| = radius) 2 types: Non-negativity/Modulus comparison, Perpendicularity Constraints:

  1. |A| > 0
  2. |B| > 0
  3. |C| > 0
  4. A.B = 0
  5. B.C = 0
  6. C.A = 0

sph (Sphere)

Sphere is a particular case of the ellipse

Constraints: 2 types: Modulus comparison, Perpendicularity

  1. |A| > 0
  2. |B| > 0
  3. |C| > 0
  4. |A| ~= |B|
  5. |A| ~= |C|
  6. |B| ~= |C|
  7. A.B = 0
  8. B.C = 0
  9. C.A = 0

tor (Torus)

Tor is built using the following input fields

V	  V from origin to center
H	  Radius Vector, Normal to plane of torus.  |H| = R2
A, B	  perpindicular, to CENTER of torus.  |A|==|B|==R1
F5, F6	  perpindicular, for inner edge (unused)
F7, F8	  perpindicular, for outer edge (unused)

Constraints: 2 types: Modulus comparison, Perpendicularity

  1. |A| = |B|
  2. A.B = 0
  3. B.H = 0
  4. H.A = 0
  5. 0 < |H| < |A|