Skip to main content

 

Hi all. I'm a bit stuck with this one. However I know it must be possible.

 

I would like to validate 3D planar surfaces of 3D Buildings. (So buildings with a ground surface, walls and roofs).

 

I can assume that all the surfaces are planar (That is something I could already check with the PlanarityFilter), but I also want to know if each individual planar surface is OGC valid.(self-intersecting,...)

 

 

My first idea was to use the GeometryValidator directly for that but it seems to work only for 2D surfaces.

 

(For instance a wall surface which is perfectly vertical (polygon) would become a selfintersecting polygon if seen from on top on a XY plane surface. So I get an error for that one while it is no error)

 

 

How can I check the 3D planar surfaces with 2D validation rules?

 

 

 

I had an idea of changing the XYZ coordinate axis: To turn around in 3D my XYZ-axis as such that my planar surface would have Z =0 for all vertices. I know it must be possible (http://www.geonovum.nl/sites/default/files/5LedouxStap3Valideren.pdf) somehow...

 

My first steps were to move (3D Affiner) my surface towards the origin of the XYZ-axis as such that 1 coordinate is exactly on (0,0,0) (and Z = 0, so that one is fine), but how to move the other vertices of the planar surface proportionally as such that everything is projected into 2D AND that the shape, area, lenghts of my surface is completely maintained...

 

Probably the good old goniometrical friends such as sinus, arcsinus, normal vectors and so on can help me out... but at the moment, I don't catch it yet.

 

 

Anyone a good suggestions?

 

(another source I found was doctor Jerry's answer: http://mathforum.org/library/drmath/view/51727.html)

 

 

Thanks

 

 

Bruno
Hi Bruno,

 

try the "CoordinateSwapper".

 

 

 CoordinateSwapper (Z->Y) => 2D Validate/test => CoordinateSwapper (Y->Z) 

 

 

I don't know what the CoordinateSwapper will do with the Z-Coordinate, but  it's worth a try.

 

 

Nils
Thanks Nils.

 

 

Good suggestion.

 

I tested the ground surfaces and roofs in the 2D XY-plane.

 

I tested the wall surfaces in the 2D - XZ-plane.

 

 

This works. (except for cases on which all the X-coordinates of all my wall vertices are exactly the same. I need to filter them out or test them into the YZ-plane)

 

 

Reply