Libpc
| 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.
|
[edit] libpc: Introduction
[edit] Objectives
The objectives encompassed by libpc are the following
- An Abstraction of Parameters over the present components of primitives
- Representation of complex (see examples) constraints between Parameters
- Framework for selection of Design/Alternative Configurations
- Fast Geometric Constraint Solution
[edit] Advantages
- Reduction of Modeling time in case of Iterative designs
- Logic of Design represented in the geometry file itself
- Capability for complex geometry generation
[edit] Constraint Satisfaction Process
[edit] Possible Approaches in BRL-CAD
[edit] Structure
libpc is composed of the following modules
- Reprsentation of Parameters and Constraints in Storage
- Representation of Parameters in Memory
- Representation of Constraints in Memory / DataStructure
- Associated MathGrammar and MathVM
- Generation of 2 and 3 from 1
- Solution System
- Constraint Network Generation from 4
- Constraint Satisfaction
- Parameter and Geometry updation
[edit] Overall Hierarchy
[edit] Libpc Hierarchy
[edit] Object Hierarchy
[edit] Use-case Scenarios