本文整理汇总了C++中Box3f::Offset方法的典型用法代码示例。如果您正苦于以下问题:C++ Box3f::Offset方法的具体用法?C++ Box3f::Offset怎么用?C++ Box3f::Offset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Box3f
的用法示例。
在下文中一共展示了Box3f::Offset方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: init
//---------------------------------------------------------------------------------------//
//
// LOGIC
//
//---------------------------------------------------------------------------------------//
void Balloon::init( int gridsize, int gridpad ){
//--- Reset the iteration counter
numiterscompleted = 0;
//--- Instantiate a properly sized wrapping volume
vol.init( gridsize, gridpad, cloud.bbox );
qDebug() << "Created a volume of sizes: " << vol.size(0) << " " << vol.size(1) << " " << vol.size(2);
//--- Compute hashing of ray intersections (using similar space structure of volume)
gridAccell.init( vol, cloud );
qDebug() << "Finished hashing rays into the volume";
//--- Construct EDF of initial wrapping volume (BBOX)
// Instead of constructing isosurface exactly on the bounding box, stay a bit large,
// so that ray-isosurface intersections will not fail for that region.
// Remember that rays will take a step JUST in their direction, so if they lie exactly
// on the bbox, they would go outside. The code below corrects this from happening.
Box3f enlargedbb = cloud.bbox;
// float del = .99*vol.getDelta(); // almost +1 voxel in each direction
float del = .50*vol.getDelta(); // ADEBUG: almost to debug correspondences
Point3f offset( del,del,del );
enlargedbb.Offset( offset );
vol.initField( enlargedbb ); // init volumetric field with the bounding box
//--- Extract initial zero level set surface
vol.isosurface( surf, 0 ); // qDebug() << "Extracted balloon isosurface (" << surf.vn << " " << surf.fn << ")";
//--- Clear band for next isosurface, clearing the corresponding computation field
for(unsigned int i=0; i<vol.band.size(); i++){
Point3i& voxi = vol.band[i];
MyVoxel& v = vol.Voxel(voxi);
v.status = 0;
v.face = 0;
v.index = 0;
v.field = NAN;
}
vol.band.clear();
//--- Update correspondences & band
vol.band.reserve(5*surf.fn);
vol.updateSurfaceCorrespondence( surf, gridAccell, 2*vol.getDelta() );
}