Department of Computer Science, UNC-Chapel Hill

Self-CCD: Continuous Collision Detection for Deforming Objects

Installation Instructions

Version 1.0 of Self-CCD is developed by Visual Studio 2005, so currently it can only be used on Windows platform.
The package is provided as static lib files (dccd.lib) and head files.

For external calling, the following directories will be used:
inc\                         #head files
lib\release\              #release version of dccd.lib
lib\debug\                #debug version of dccd.lib
make\                     #project files for Visual Stdio 2005

Download data file

To run the demos, please download data files from fellowing links:
download http://gamma-web.iacs.umd.edu/SR/benchmarks/cloth_ball.plys.zip
and put the extracted ply files into d:\data\cloth_ball.plys\

Building Library and Demos

  1. Open make\self-ccd.sln, then build and run it.
  2. For example, following information is output on my PC:
    ==========================================
    CCD Information:
    intersection time: 90.8777
    collecting nonadjacent: 54.7118
    processing nonadjacent: 36.0546
    processing adjacent: 0.110595
    BVH and update time: 25.9455
    refit BVH: 8.07839
    update vtx, boxes for V/E/F: 17.8665
    all vf tests: 886300, true vf tests: 103277, ratio: 0.116526
    all ee tests: 3111810, true ee tests: 539010, ratio: 0.173214
    box test: 1383337716
    total: 116.824 seconds
    =============================================

Self-CCD API

All the API are listed in inc/ccdAPI.h. An example is shown in sample/main.cpp:

a. Providing the initial configuration of the deformable model:

ccdInitModel(vtxs, tris);

Here vtxs is a list of vertices, and tris is a list of triangles (each is defined by
three indices)

b. As the model is deforming, update the model by providing current vertices:

ccdUpdateVtxs(vtxs);

c. Checking collisions:

ccdChecking(true); // true for refitting the BVH, false for rebuilding the BVH

d. Get timing and counting information:

ccdReport();

e. Clear memory:

ccdQuitModel();

f. Set callback functions for EE/VF tests:

ccdSetEECallback(EECallback);
ccdSetVFCallback(VFCallback);

They will be called then true EE/VF tests are founded.

Bug Report

We would be interested in knowing more about your application as well as any
bugs you may encounter in the collision detection library. You can
report them by sending e-mail to geom@cs.unc.edu or tang_m74@hotmail.com

© 2010 Department of Computer Science, UNC-Chapel Hill