Subject | Hash | Author | Date (UTC) |
---|---|---|---|
wireframe: implement Gabriel adjacency | f0a74b4f28cec6c2ddc68d6811e0a812fc829d63 | I am | 2022-11-16 06:16:58 |
qt_gui.qt_pairwise.ContactWidget: reflect updated wireframe | b00a9be23d92d999e0020426a7a5caa1206c5862 | I am | 2022-11-16 03:56:57 |
wireframe: implement LocalizedHull class | 95c19144c5144461db241df1b2bd20d8950c8d57 | I am | 2022-11-16 03:55:59 |
qt_gui.qt_pairwise.ContactWidget: polish UI | bd48c8a6342e20dac1d635b963dd44e62c371379 | I am | 2022-11-13 20:03:39 |
wireframe: add convex_slice() method | efada4c62f88b6106c687217472e0b8c52374fed | I am | 2022-11-13 19:51:49 |
qt_gui.qt_pairwise.ContactWidget: finish widget and clean up | 10753a104879d6b9c109735e959b18b5a60a4616 | I am | 2022-11-10 05:02:01 |
wireframe: finish and clean up module. implement DirectContact. | f7ff9c02f25a3ed8fe04e99036da69766afa5a49 | I am | 2022-11-10 04:58:58 |
qt_gui.qt_pairwise.ContactWidget: implement Qhull check | e362df1f8b87ab7c6a27643cd6f4091b9caec9a3 | I am | 2022-11-09 21:35:10 |
wireframe: add Qframe class | cf52d85dd1663537cd8c52a98514c7d041913979 | I am | 2022-11-09 21:34:12 |
qt_gui.qt_pairwise: add auto arnge and auto levels controls | 9bc2cf10a9a1695c2c1a5f6a9959f375d3808a71 | I am | 2022-11-09 18:16:47 |
qt_gui.qt_pairwise: set blue -1 by default. Add force_update option in Contact widget | 7371575784df7fd41bd76ad29caf38f474a06a26 | I am | 2022-11-09 15:39:03 |
qt_gui.qt_pairwise: prepare Contact widget | bfa78d7493f5eb04b6bd3a4ad26dd1a92d17a895 | I am | 2022-11-09 03:36:05 |
qt_gui.qt_pairwise: prepare more mouse event signals | c60e613508480c68483b3d0d6ad6c876b27f539c | I am | 2022-11-08 01:55:14 |
qt_gui: introduce reworked matrix view window | e28b95c5f418a7a3cea0cb84ca82b40275a71061 | I am | 2022-11-07 02:20:45 |
introduce wireframe module for the contacts finding functionality | b6068dd92663699859ea7cbf3aac00178d120e0f | I am | 2022-10-25 14:24:37 |
voronoi.TwoPoints: atleast_2d() one line fix | 9f8bd9e5370ccf30887b6218331ee664788a3b91 | I am | 2022-10-25 07:09:57 |
voronoi: implement faster TwoPoints class. | c0af78f64bc78a6b8cf06e3ea244339549318b66 | I am | 2022-10-24 13:03:26 |
voronoi: implement TwoHorses class. Třída je, bohužel, bezcenná :( | 4f6fe186f3f344fa7ee9e518798499099615b466 | I am | 2022-10-23 10:00:43 |
voronoi: WIP | 23c63ede5bc2ec51d25aed850dc59299db438e34 | I am | 2022-10-21 12:27:01 |
IS_stat.sample_alike: use any possible fallback options to sample | 80fb6d086e9f17350a1725a319e40bf29591869e | I am | 2022-10-20 08:56:42 |
File | Lines added | Lines deleted |
---|---|---|
wellmet/wireframe.py | 31 | 0 |
File wellmet/wireframe.py changed (mode: 100644) (index e7c8d16..35bf320) | |||
... | ... | class DirectContact(KDTree): | |
113 | 113 | ||
114 | 114 | ||
115 | 115 | ||
116 | # | ||
117 | # Gabriel | ||
118 | # | ||
119 | |||
120 | #č zda existuje přímy kontakt, prostě na usečce | ||
121 | class Gabriel: | ||
122 | def __init__(self, points): | ||
123 | self.points = points | ||
124 | nsim, ndim = points.shape | ||
125 | |||
126 | self.b = np.sum(np.square(points), axis=1) | ||
127 | self._mask = np.empty(nsim, dtype=bool) | ||
128 | |||
129 | |||
130 | def is_couple(self, couple_indices): | ||
131 | i, j = couple_indices | ||
132 | |||
133 | mask = self._mask | ||
134 | if len(mask) < 3: | ||
135 | return True | ||
136 | mask[:] = True | ||
137 | mask[[i, j]] = False | ||
138 | |||
139 | X = self.points | ||
140 | b = self.b | ||
141 | |||
142 | test = b[mask] - X[mask] @ X[i] - X[mask] @ X[j] + np.inner(X[i], X[j]) | ||
143 | |||
144 | return np.all(test >= 0) | ||
145 | |||
146 | |||
116 | 147 | # | # |
117 | 148 | # ConvexSolver | # ConvexSolver |
118 | 149 | # | # |