# Geometry :

Subject: Re: [geometry] 3D box -> 3D multi_polygon conversion
From: Tomislav Maric (tomislav.maric_at_[hidden])
Date: 2013-06-12 04:49:29

On 06/12/2013 01:51 AM, Adam Wulkiewicz wrote:
> Tomislav Maric wrote:
>> On 06/11/2013 10:12 PM, Adam Wulkiewicz wrote:
>>>
>>> Correct me if I'm wrong but shouldn't ring, polygon, multipolygon,
>>> etc. be always flat? It may be 3D, may have even some orientation and
>>> position in 3D space, not only height, but should be flat. This way we
>>> can perform some 2D operations on it by e.g. first projecting it into
>>> the 2D plane. E.g. we can calculate convex hull (also flat) or
>>> triangulate. I'm not so sure if using MultiPolygon concept to describe
>>> 3D mesh is a good idea. I'd rather provide additional concept.
>>
>> IMHO this would be quite expensive. Coordinate transform is a Matrix
>> Vector multiplication, and it costs for nothing, if its only done to
>> enable 2D calculation on a 3d object. Another point, consider
>> incremental convex hull in 3D: computing the visible face is not
>> possible to do this way (mixed product makex only sense for non
>> co-planar vectors) simply because the hull construction will lie in 3D
>> and transforming it to 2D projection will not work. I'm sure the
>> quickhull algorithm is similar.
>>
>
> Sure, this was only an example. My point was that maybe there should
> be introduced a new, as you've written, MultiPolygon-like concept. And
> then algorithms should be built for it. Maybe even you'd like to
> extend MultiPolygon somehow or change it to describe meshes in better
> way? E.g. should 3D mesh contain faces which are polygons with holes?
> Or could those containing only triangles be represented in some
> optimized way?

Well, I am working on numerical methods for simulating fluid flow, and
they need flow domain to be decomposed into polyhedra like MultiPolygon,
so physics prevents the polygons of those polyhedra to have holes...
What I am aiming at is working on the algorithms in 3D in
boost.geometry, that I need in order to optimize my geometrical code for
speed + efficiency, and then extend what I get later for a more general
purpose.

Triangles: that's a great question actually. Basically, the answer is
yes and no. Initially the polyhedron is consisted of polygons, but then
it is decomposed into tetrahedra to compute its volume and do subsequent
intersections. This is done because some of its polygons will be *non
planar* (search for voFoam on arXiv.org, page 12 I think).

So, there are three concepts, I believe: polyhedron (multipolygon
extended), tetrahedron and tetrahedral decomposition of a polyhedron
(just triangle faces: e.g. optimized normal vector calculation).

Best regards,
Tomislav

>
> Regards,