27 #ifdef _MSC_VER // Microsoft Visual C++ -- warning level 4
28 #pragma warning( disable : 4611) // interaction between '_setjmp' and C++ object destruction is non-portable
29 #pragma warning( disable : 4996) // function was declared deprecated(strcpy, localtime, etc.)
36 s_empty_facet= {0,0,0,0,{0},
49 : qh_facet(&s_empty_facet)
56 : qh_facet(f ? f : &s_empty_facet)
138 throw QhullError(10018,
"Qhull error: facetArea() or qh_getarea() previously called. triCoplanarOwner() is not available.");
149 throw QhullError(10052,
"Error: QhullFacet.voronoiVertex() requires option 'v' (qh_ASvoronoi)");
224 os <<
" NULLfacet" << endl;
228 os <<
" MERGEridge" << endl;
232 os <<
" DUPLICATEridge" << endl;
248 facetT *f= pr.facet->getFacetT();
257 numCoords= pr.facet->qh()->hull_dim-1;
262 for(
int k=0; k<numCoords; k++){
263 os << f->
center[k] <<
" ";
266 for(
int k=0; k<numCoords; k++){
271 numCoords= pr.facet->qh()->hull_dim;
278 for(
int k=0; k<numCoords; k++){
279 os << f->
center[k] <<
" ";
293 const facetT *f= p.facet->getFacetT();
298 os << (p.facet->isTopOrient() ?
" top" :
" bottom");
299 if(p.facet->isSimplicial()){
302 if(p.facet->isTriCoplanar()){
303 os <<
" tricoplanar";
305 if(p.facet->isUpperDelaunay()){
306 os <<
" upperDelaunay";
327 os <<
" mergehorizon";
330 os <<
" keepcentrum";
336 os <<
" mergeridge1";
339 os <<
" mergeridge2";
348 os <<
" notfurthest";
366 os <<
"- f" << facet.
id() << endl;
369 os <<
" - area: " << f->
f.
area << endl;
371 os <<
" - replacement: f" << f->
f.
replace->
id << endl;
374 os <<
" - shares same visible/horizon as f" << f->
f.
samecycle->
id << endl;
378 os <<
" - owner of normal & centrum is facet f" << f->
f.
triowner->
id << endl;
381 os <<
" - was horizon to f" << f->
f.
newcycle->
id << endl;
384 os <<
" - merges: " << f->
nummerge << endl;
391 if(f->
maxoutside > pr.facet->qh()->DISTround){
392 os <<
" - maxoutside: " << f->
maxoutside << endl;
399 os <<
" - outside set(furthest p" << furthest.
id() <<
"):" << endl;
400 for(QhullPointSet::iterator i=ps.
begin(); i!=ps.
end(); ++i){
404 }
else if(ps.
size()<21){
405 os << ps.
print(
" - outside set:");
407 os <<
" - outside set: " << ps.
size() <<
" points.";
408 os << furthest.
print(
" Furthest");
410 #if !qh_COMPUTEfurthest
411 os <<
" - furthest distance= " << f->
furthestdist << endl;
418 os <<
" - coplanar set(furthest p" << furthest.
id() <<
"):" << endl;
419 for(QhullPointSet::iterator i=cs.
begin(); i!=cs.
end(); ++i){
423 }
else if(cs.
size()<21){
424 os << cs.
print(
" - coplanar set:");
426 os <<
" - coplanar set: " << cs.
size() <<
" points.";
427 os << furthest.
print(
" Furthest");
431 os <<
" furthest distance= " <<
d << endl;
435 os << vs.
print(
" - vertices:");
454 if(f->
visible && pr.facet->qh()->NEWfacets){
455 os <<
" - ridges(ids may be garbage):";
456 for(QhullRidgeSet::iterator i=rs.begin(); i!=rs.end(); ++i){
458 os <<
" r" <<
r.id();
462 os <<
" - ridges:" << endl;
466 for(QhullRidgeSet::iterator i=rs.begin(); i!=rs.end(); ++i){
468 r.getRidgeT()->seen=
false;
472 for(
QhullRidge r= rs.first(); !
r.getRidgeT()->seen;
r=
r.nextRidge3d(facet)){
473 r.getRidgeT()->seen=
true;
476 if(!
r.hasNextRidge3d(facet)){
482 for(QhullFacetSet::iterator i=ns.
begin(); i!=ns.
end(); ++i){
485 for(QhullRidgeSet::iterator j=nrs.begin(); j!=nrs.end(); ++j){
487 if(
r.otherFacet(neighbor)==facet){
488 r.getRidgeT()->seen=
true;
495 if(ridgeCount!=rs.count()){
496 os <<
" - all ridges:";
497 for(QhullRidgeSet::iterator i=rs.begin(); i!=rs.end(); ++i){
499 os <<
" r" <<
r.id();
503 for(QhullRidgeSet::iterator i=rs.begin(); i!=rs.end(); ++i){
505 if(!
r.getRidgeT()->seen){