Artificial intelligent assistant

How to determine if a vertex on a polyhedron has a local supporting plane? A supporting plane of a polyhedron $P$ is a plane that touches $P$ (i.e. at least one point on the surface of $P$ is included in the plane) and the entirety of $P$ lies on one side the plane. A plane $X$ is a local supporting plane of a point $a$ on $P$ if there exists a neighbourhood of $a$, $N(a)$, such that $X$ is a supporting plane of $P \cap N(A)$. Given a polyhedron $P$, and a vertex $v$ on $P$, how could you determine whether there exists a local supporting plane of $v$? (Only existence is required.) For a 2D polygon, this is simply finding convex vertices.

I found an answer in this paper, albeit sans proof, with my own interpretation of some slightly ambiguous language.

Let $ab$ denote a directed edge from vertices $a$ and $b$. Let $l_{ab}$ and $r_{ab}$ denote the outwards facing unit normal of the incident faces on the left and right of $ab$ respectively (when viewed from the side of $a$ towards $b$).

Edge $ab$ is convex iff $l_{ab} \cdot (\hat{ab} \times r_{ab}) < 0$.

Vertex $v$ is convex iff $\exists$ vertices $a$ and $b$ with $n = va \times vb$ s.t.:

* $va$ and $vb$ are convex
* Either: (a) boths edges are incident on the same face with outwards normal $\hat{n}$ _or_ (b) $\hat{n} \cdot (l_e \times \hat{e}) < 0$ and $\hat{n} \cdot (\hat{e} \times r_e) < 0$, for both $e = va$ and $e=vb$
* For every vertex $u$ incident to $v$ (except $a$ and $b$), $(\hat{n} \cdot \hat{vu}) < 0$



A vertex has a local supporting plane if it is convex by this definition.

xcX3v84RxoQ-4GxG32940ukFUIEgYdPy fb0564f54045676ac897a3f508520db9