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

  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

Possible Approaches in BRL-CAD

Structure

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

Libpc Hierarchy

Object Hierarchy

Use-case Scenarios