![]() |
【转帖】exception in oddbsplinegetarea90
exception in oddbspline::getarea()
exception in oddbspline::getarea() i am using dd 1.14.02 libs. the code: code: oddbsplineptr pspline = oddbspline::createobject(); odgedoublearray weights; pspline->setnurbsdata( 3, // degree false, // rational true, // closed false, // periodic controlpoints, // control points knots, // knots weights, // weights 1.0000e-10, // control point tolerance 1.0000e-10); // knot tolerance odgematrix3d matrix; matrix.settoscaling(0.013888898047845547); pspline->transformby(matrix); double area = 0; odresult result = pspline->getarea(area); /* controlpoints = { {306.63769531250000, 395.45605468750000, 0.00000000000000000}, {306.63574218750000, 395.46972656250000, 0.00000000000000000}, {306.63330078125000, 395.49121093750000, 0.00000000000000000}, {306.62939453125000, 395.49121093750000, 0.00000000000000000}, {306.62207031250000, 395.49511718750000, 0.00000000000000000}, {306.62597656250000, 395.47949218750000, 0.00000000000000000}, {306.63769531250000, 395.45605468750000, 0.00000000000000000} }; knots = { 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2 }; weights = {}; // empty */ when executed, results in getarea() throwing an einvalidinput exception. the relevant call stack is: code: kernel32.dll!7c81eb33() [frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] kernel32.dll!7c81eb33() ...!odrefcounter::operator--() line 295 + 0x10 bytes ...!odrxobjectimpl<oddefaulterrorcontext,oddefaulterrorcontext>::release() + 0x37 bytes ...!odsmartptr<oddefaulterrorcontext>::release() + 0x20 bytes e06d7363() ...!odgevector3d::normalize() + 0x37 bytes ...!odgeplanarent::set() + 0x53 bytes ...!odgeplane::set() + 0x17 bytes ...!odgepolyline3d::isplanar() + 0x167 bytes ...!odgepolyline3d::area() + 0x5e bytes ...!odgecurve3d::area() + 0x78 bytes ...!oddbspline::getarea() + 0x16a bytes if i skip pspline->transformby(matrix) then no exception is generated and i get area = 0.00016050263399227611 with result = eok. what am i doing wrong? regards, varun last edited by varunsnair; 3rd may 2006 at 10:29 pmfff">. hi dd guys, any pointers on this? thanks, varun this is a bug (tolerance issue) in odgepolyline3d::isplanar. it will be fixed in the next release. vladimir any dates set for next release yet? regards, varun |
所有的时间均为北京时间。 现在的时间是 10:35 PM. |