there is one easy way i can think, but that's not maybe very easy to write.
you can devide the the while interior of set into some convex subsets. for example in your attached image there are 3 obvious convex subset (main hall , extra space in front face, and extra space in back face). the convex linear subset of euclidean spaces can easily interpreted in ineqality of form: ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1037870/image.png)
(the propertiy you mentioned that every interior point is convex combination of 2 point in walls are true because of this. in general you can represent every interior points in convex combination of just nodes in corners.)
Hence the condition you can check for evey points is :
this code check if all conditions of A*x<=c are satisfied. this is the mathematical meaning of interior.
now A and c are coefficients which can be found for every surface by it's equation.
the equation of i-th surface is like : ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1037875/image.png)
and for every surface you should check if <= is inside or >= . in the >= case multiply the inequality by (-1) and make it <=.
the reason i said maybe it's not easy to write is beacause you should drive A and C by yourself for every problem. (or maybe that's another problem to automate this procedure too)
i think this should do the task.