Revision as of 07:34, 28 March 2009 by Homovulgaris (talk | contribs) (Structure)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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.

libpc: Introduction[edit]


The objectives encompassed by libpc are the following

  • Front-end
  1. An Abstraction of Parameters over the present components of primitives
  2. Representation of complex (see examples) constraints between Parameters
  3. Framework for selection of Design/Alternative Configurations
  • Back-end
  1. Fast Geometric Constraint Solution


  1. Reduction of Modeling time in case of Iterative designs
  2. Logic of Design represented in the geometry file itself
  3. Capability for complex geometry generation

Constraint Satisfaction Process[edit]

Possible Approaches in BRL-CAD[edit]


libpc is composed of the following modules

  1. Reprsentation of Parameters and Constraints in Storage
  2. Representation of Parameters in Memory
  3. Representation of Constraints in Memory / DataStructure
    1. Associated MathGrammar and MathVM
  4. Generation of 2 and 3 from 1
  5. Solution System
    1. Constraint Network Generation from 4
    2. Constraint Satisfaction
  6. Parameter and Geometry updation

Overall Hierarchy[edit]

Libpc Hierarchy[edit]

Object Hierarchy[edit]

Use-case Scenarios[edit]