Editing Libpg : A parametrics/constraint library

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 18: Line 18:
 
acts as a library which sits above librt using the librt methods for creation and modification of geometry
 
acts as a library which sits above librt using the librt methods for creation and modification of geometry
  
To efectively implement constraints, the library would first implement constraint functionality which currently exists in terms of implicit constraints ( Non negative radius, Perpendicular vectors etc. ) To see a list of implicit constraints in the various BRL-CAD primitives See [[A Survey of Implicit Constraints in Primitives]]
 
  
 
==Constraints and CSPs==
 
==Constraints and CSPs==
Line 47: Line 46:
 
For effective integration with librt system as well as rest of existing brl-cad architecture, the Reader as well as Geometry Updater is entirely in C using standard datastructures. At the same time to make use of the functionality offered by various graph algorithms of boost as well as the power of object oriented programming model in constraint solution, the Constraint Network generator as well as solver is entirely coded in C++. Extensive use of Boost library is expected, in particular
 
For effective integration with librt system as well as rest of existing brl-cad architecture, the Reader as well as Geometry Updater is entirely in C using standard datastructures. At the same time to make use of the functionality offered by various graph algorithms of boost as well as the power of object oriented programming model in constraint solution, the Constraint Network generator as well as solver is entirely coded in C++. Extensive use of Boost library is expected, in particular
  
# constrained_value system : for representing implicit constraints using a predicate system
+
# constrained_value system for representing implicit constraints using a predicate system
 
# Boost Graph Library : for graph based representation of the constraints. '''Since BGL does not have support for Hypergraphs, the author plans to implement hypergraphs independently while adhering to Boost standards ( probable addition to boost itself)'''
 
# Boost Graph Library : for graph based representation of the constraints. '''Since BGL does not have support for Hypergraphs, the author plans to implement hypergraphs independently while adhering to Boost standards ( probable addition to boost itself)'''
# Boos Spirit Library : for the parser based generation of constraint objects from expressions.
+
 
Spirit is an object-oriented recursive-descent parser generator framework implemented using template meta-programming techniques. Expression templates allow us to approximate the syntax of Extended Backus-Normal Form (EBNF) completely in C++. Spirit details available at [http://www.boost.org/doc/libs/1_35_0/libs/spirit/index.html boost.org]
 
  
 
-- Content below is undergoing modification --
 
-- Content below is undergoing modification --
 +
  
 
==Constraint object architecture==
 
==Constraint object architecture==
Line 133: Line 132:
 
Initial draft/intent
 
Initial draft/intent
  
  It would be ideal to provide both analytical and numeric evaluation methods the  second one being of
+
  It would be ideal to provide both analytical and numeric evaluation methods the  second one being of primary importance in terms of constraint based  calculations.
primary importance in terms of constraint based  calculations. Considering the standard methods of
+
Considering the standard methods of parametrization ( see Enumeration below ) I  think the implementation of an analytic solving system would be easier. Though  for the solution of more complex equation as well as majority of constraints ,  libpg will have to provide support for numerical solutions.
parametrization ( see Enumeration below ) I  think the implementation of an analytic solving system  
 
would be easier. Though  for the solution of more complex equation as well as majority of constraints,
 
  libpg will have to provide support for numerical solutions.
 

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Template used on this page: