From: E.L. W. (Egon) <eg...@sc...> - 2003-05-23 18:36:19
|
On Friday 23 May 2003 09:02, Miguel wrote: > To solve the "rebonding" problem I built a prototype of a binary space > partitioning tree to hold the points. This is an effecient data structure > which provides access to points which are "near" other points. > > It has not yet been integrated into cdk/jmol, but is a standalone > prototype. This should go into CDK. > In our case, the BSP tree divides the 3-space into little blocks. You can > then use an iterator to enumerate all the points within those blocks. > > The API is currently > Enumeration enumDelta(Point3D center, double delta) > > This enumerator is returns all the points that are within the cube defined > by: > center.x +/- delta > center.y +/- delta > center.z +/- delta > > Two points > 1) this is a cube, not a sphere > 2) because of way the data structure works, some points outside > this cube are returned also ... basically the contents of all > little boxes defined by the bsp tree. > > It would be easy for me to make another variant of this iterator which > restricts to all the points that are within the sphere. But this may not > be worth it if we are going to turn around and do some more distance > calculations with the result. Blocks should be fine. One question though... what about two neighboring atoms that fall into two different block, because the are distributed just around the edge? > Questions: > Does the auto-bonding distance depend upon the types of the atoms involved? > *Should* it depend upon the types of the atoms involved? Yes, it should (and does?) depend on the Vanderwaals radii... Egon |