libpc: Introduction
Objectives
The objectives encompassed by libpc are the following
-
Front-end
-
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
-
Back-end
-
Fast Geometric Constraint Solution
Advantages
- Reduction of Modeling time in case of Iterative designs
- Logic of Design represented in the geometry file itself
- Capability for complex geometry generation
Constraint Satisfaction Process
Possible Approaches in BRL-CAD
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