(scale_: float = 1.0, n: int = 10)
| 131 | |
| 132 | |
| 133 | def create_arrow_head(scale_: float = 1.0, n: int = 10) -> hppfcl.Convex: |
| 134 | scale = scale_ / 2 |
| 135 | pts = hppfcl.StdVec_Vec3f() |
| 136 | assert n > 3 |
| 137 | center = np.zeros(3) |
| 138 | for i in range(n): |
| 139 | pt = scale * np.array([np.cos(TWOPI * i / n), np.sin(TWOPI * i / n), 0.0]) |
| 140 | center += pt |
| 141 | pts.append(pt) |
| 142 | pts.append(center) |
| 143 | pts.append(scale * np.array([0.0, 0.0, 2.0])) |
| 144 | |
| 145 | tris = hppfcl.StdVec_Triangle() |
| 146 | for i in range(n): |
| 147 | # Base triangle |
| 148 | tris.append(hppfcl.Triangle(i, n, (i + 1) % n)) |
| 149 | # Side triangle |
| 150 | tris.append(hppfcl.Triangle(i, (i + 1) % n, n + 1)) |
| 151 | |
| 152 | cvx = hppfcl.Convex(pts, tris) |
| 153 | return cvx |
| 154 | |
| 155 | |
| 156 | def npToTTuple(M): |
no outgoing calls
no test coverage detected