OpenMesh 1.9.5 ported to D

Bill Baxter dnewsgroup at billbaxter.com
Tue Sep 25 16:57:45 PDT 2007


Ansible wrote:
> Bill Baxter wrote:
>> I ported most of the OpenMesh library from C++ to D 
>> (http://www.openmesh.org)
>>
>> It's not available anywhere yet, but it will be eventually, under the 
>> LGPL licence like its papa.
>> I'm mentioning it here now because I've just been lazy about putting 
>> it up.  But if there's interest, I can work a little faster at getting 
>> a project up for it on dsource.
>>
>> It's a 100% native D port rather than a wrapper.  OpenMesh is almost 
>> entirely templates, so doing a wrapper didn't make much sense.
>>
>> --bb
> 
> Very cool!  I'm interested in doing some 3d mesh manipulation myself, 
> and exploring D at the same time.
> 
> Here's a bit of an OT question for you:
> 
> I have a 2d laser triangulation scanner sitting in my office, which I 
> use for work.  You can push an object through the scanner and create a 
> point cloud that more-or-less approximates the object.
> 
> I've gotten interested in writing something to turn this point cloud 
> into a 3d model.  I've done it in C++, but its not quite where I want it 
> to be - it doesn't handle objects like rabbit ears or coffee cups - but 
> as long as you want to scan cigars, you're fine.
> 
> Can you recommend a lib or algorithm out there for doing this kind of 
> work?  From a brief overview of the openmesh website it looks like this 
> isn't the kind of thing openmesh does, its more the kind of thing that 
> openmesh is used to make.

Google for phrases like "surface reconstruction from point cloud data" 
or "from scattered data".  I don't know of any particular algorithms off 
the top of my head, but I know moving least squares (MLS) and radial 
basis functions (RBFs) are both frequently used components of algorithms.

One thing you might like to do with the mesh one you've extracted it 
from the scanner data is to apply some smoothing algorithms to reduce 
scanner noise.  And for that OpenMesh should be appropriate.  There are 
some smoothing algorithms already implemented in there.  (Caveat: I 
haven't verified the functionality of the smoothers, but the code 
compiles, and given that it's a pretty mechanical translation of the 
C++, if the C++ worked chances are good this does too.  If not it should 
only take a minor tweak or two.)

--bb



More information about the Digitalmars-d-announce mailing list