SCI Seg3D Mailing List

## [Seg3D] Re: Re: Implementation of surface meshing from points

• From: mnguyen <My-Tien.Nguyen@mpimf-heidelberg.mpg.de>
• To: seg3d@sci.utah.edu
• Subject: [Seg3D] Re: Re: Implementation of surface meshing from points
• Date: Wed, 25 Sep 2013 11:03:53 +0200

 Thank you for your kind response, I learned very much from the Isosurface class. There is one thing I dont quite understand: the mask_value. I can see that it belongs to the MaskDataBlock class and is used to determine wether a cube vertex is inside or outside of the isosurface: // An 8 bit index is formed where each bit corresponds to a vertex `// Bit on if vertex is inside surface, off otherwise` `if ( data1[ q ] & this->mask_value_ ) type |= 0x1;` `if ( data1[ q + 1 ] & this->mask_value_ ) type |= 0x2;` ```if ( data1[ q + this->nx_ + 1 ] & this->mask_v alue_ ) type |= 0x4;``` `if ( data1[ q + this->nx_ ] & this->mask_value_ ) type |= 0x8;` `if ( data2[ q ] & this->mask_value_ ) type |= 0x10;` `if ( data2[ q + 1 ] & this->mask_value_ ) type |= 0x20;` ```if ( data2[ q + this->nx_ + 1 ] & this->mask_v alue_ ) type |= 0x40;``` ```if ( data2[ q + this->nx_ ] & this->mask_value_ ) type |= 0x80; ``` Can you show me how this mask value is obtained, what it actually means and why you can see from it if a vertex is inside or outside? Am 20.09.2013 20:18, schrieb Ayla Khan: A6771258-2C2D-41A9-A497-F09230879C77@sci.utah.edu" type="cite"> ```Hi My-Tien, Have a look at the Isosurface class under src/Core/Isosurface. The isosurface is generated using Marching Cubes. The resulting triangle surface mesh is represented using vectors of points, vertices and scalar data. The code should be fairly straightforward to read through and the algorithm is well-commented. Ayla On Sep 19, 2013, at 7:08 AM, mnguyen wrote: ``` ```Hello, I am very impressed by the seg3D software and would like to learn from it, I am especially interested in the way, a 3D mesh is generated from user drawn contours. I have already downloaded the source files. Could you point me out to the locations in the code that deal with storing the user tracings and the process of meshing? In what kind of data structures do you store the user tracings and the generated meshes? Do you only use the marching cubes approach or do you also use delaunay triangulation? Can you point me out to any documentation or tutorials which could help me understand? Many thanks in advance My-Tien ```