1 Datatypes and Prototypes in pcm.h ----------------------------------- - Datatypes for Contact Surfaces and Contacts - Function Prototypes 2 Defines in pcm_env.h ---------------------- - Definition of Environment- and Platform-specific Settings 3 Libraries/Utilities --------------------- -pcm_mathlib Elementary Mathematics Library -pcm_print Print Messages 4 Pre-Processing ---------------- -pcm_defcont Define Contact | +-pcm_rootget Get Root Pointers | +-pcm_rootset Set Root Pointers | +-pcm_addcosu Read Contact Surfaces | | | +-(pcm_readcsli) Read one Line of an ASCII-File | | | +-(pcm_creacosu) Create a new Dataobjects for Contact Surfaces | +-pcm_cosupre Pre-Processing for Contact Surface | | | +-pcm_creadcel Create DCELs for Contact Surface | | | +-pcm_calcsgeo Calculate advanced Contact Surface Geometry | | | +-pcm_creabvtr Create Bounding Volume Tree for Contact Surface | | | +-(pcm_creabvkn) Create Knot of Bounding Volume Tree | | | +-pcm_centsort Sort Coordinates of Barycentres | | | +-(pcm_creahslv) Create Level in Heapsort Tree | | | +-(pcm_sortheap) Sort Heapsort Tree | +-pcm_addcont 5 Contact Evaluation -------------------- -pcm_calcont Calculate Contact | +-pcm_rootget Get Root Pointers | +-pcm_coldet Check for Collision of two Surfaces | | | +-(pcm_cdcheck) Check for Collision of two Bounding Volumes | | | +-(pcm_ticheck) Check for Intersection of two Triangles | | | +-pcm_tritri Triangle/Triangle Intersection-Test | +-pcm_creaispo Create Intersection Polygons | | | +-(pcm_eudisqr) Calculate squared Euclidan Distance of two Position Vectors | | | +-(pcm_swpvec) Interchange Coordinates of two Position Vectors | +-pcm_cractelm Create active Elements of pcm Contact Surfaces | | | +-(pcm_addifip) Add intersected Polygons to Intersection | | | | | +-(pcm_addactid) Add ID to Binary Tree of active Faces or Vertices | | | +-(pcm_srchmvip) Search and move associated Intersection Polygon to Intersection | | | | | +-(pcm_disinsec) Determine Distance of Point to nearest inner Intersection with Polygon | | | | | +-(pcm_addifip) Add intersected Polygons to Intersection | | | +-(pcm_srchinae) Recursively search for inner Vertices and Faces | | | | + +-(pcm_srchmvip) Search and move associated Intersection Polygon to Intersection | | | | | +-(pcm_addactid) Add ID to Binary Tree of active Faces or Vertices | | | +-(pcm_linactid) Copy active Elements from Binary Trees to global Dataobjects | +-pcm_crcemasl Create Contact Elements using Master/Slave-Algorithm | | | +-pcm_calcntel Create active Elements of Contact Surfaces | +-pcm_calctfrc Calculate Contact Force | +-pcm_frcntmem Free Contact State Memory 6 Post-Processing ----------------- -pcm_freemem Free Memory | +-pcm_rootget Get Root Pointers | +-pcm_frcntmem Free Contact State Memory | +-(pcm_frbvtmem) Free Memory of Bounding Volume Tree | +-pcm_rootset Set Root Pointers