高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】possible cw8 bug
possible cw8 bug
possible cw8 bug
greetings,
here is a bug i have discovered in dwgdirect for cw8 mac.
occasionally, in the cw8 version odgeelliparc::startang() and odgeelliparc::endang() return values apparently shifted -90 degrees. this does not happen all the time, in fact, it seems to happen on some obscure random basis. this never happens on windows ( of course ).
here is my code:
void mydevice::elliparcproc
(
const odgeelliparc3d& odgearc,
const odgepoint3d* pendpointsoverrides,
odgiarctype arctype, // = kodgiarcsimple,
const odgevector3d* pextrusion // = 0
)
{
odge::errorcondition flag = odge::kok;
odgeelliparc3d* arc = null;
arc = static_cast<odgeelliparc3d *>( odgearc.copy() );
arc->correctaxis(odgecontext::gtol, flag);
odgigeometrysimplifier::elliparcproc( *arc, pendpointsoverrides, arctype, pextrusion );
}
i have identified the problem to be the correctaxis() function.
i need correctaxis() function because of the matrix i use in the myview::update() function. without the correctaxis() function mac tesselates correctly. again, this is not a problem on windows, only on mac.
i have attached a dwg file in which this occurs. the long arc at the top of this drawing that makes up a part of the cylinder shown in the file is shifted -90 degrees in mac, but not in windows. all other arcs in this file come out the same on both platforms. most importantly: i use the very same code for both platforms!!
hopefully someone can take a look at that.
thanks
robert lopez
attached files
the output i'm getting in our odvectorizeex sample on the mac, vs. the windows output is below.
mac:
begin elliparcproc, center38.910325, 637.289274, 0.000000)
minr:4.500000, majr:4.500000
minaxis0.380200, -0.924904, 0.000000)
majaxis-0.924904, -0.380200, 0.000000)
n0.000000, 0.000000, 1.000000), sa:4.712389, ea:5.893172
win:
begin elliparcproc, center38.910325, 637.289274, 0.000000)
minr:4.500000, majr:4.500000
minaxis-0.924904, -0.380200, 0.000000)
majaxis-0.380200, 0.924904, 0.000000)
n0.000000, 0.000000, 1.000000), sa:0.000000, ea:1.180783
these 2 descriptions define the same curve even though the axes and angles are different, since the angles are measured from the major axis counter-clockwise. the simplified output for each of these curves in odvectorizeex was identical in my testing, and i did not see that the correctaxis function had any effect on this particular arc on the mac.
|