坐标转换问题

在局部坐标系创建元素 只有使用mdl类函数创建才是正确的,用ShapeHandler创建的还是全在世界坐标

Dpoint3d origin = GetDesignRect::getRectPoints()[0];
mdlCurrTrans_begin();
mdlCurrTrans_identity();
//定义新坐标原点
if (SUCCESS != mdlCurrTrans_translateOrigin(&origin))
{
printf("没有当前转换");
return;
}
//旋转
if (SUCCESS != mdlCurrTrans_rotateByAngles(0.0, 0.0, g_info.angle))
{
printf("没有当前转换");
return;
}
Dpoint3d shap[4], tmppoint;
tmppoint.x = tmppoint.y = tmppoint.z = 0.0;
//网格shap四个点
shap[0].z = shap[1].z = shap[2].z = shap[3].z = 0;
shap[1].x = shap[0].x + g_dp.GridLength * g_uor;
shap[2].x = shap[1].x;
shap[2].y = shap[1].y + g_dp.GridHeight * g_uor;
shap[3].y = shap[2].y;
shap[3].x = shap[2].x - g_dp.GridLength * g_uor;

//创建shap 求与边界是否有交集 有交集(有边界点) 求交集shap 没有交易相离舍弃 在内部直接采用当前shap 对目标shap的每个点求自然标高
MSElement outShape;
EditElementHandle outshaphandel;
if (SUCCESS != mdlShape_create(&outShape,NULL, shap,4,0))
//if (SUCCESS != ShapeHandler::CreateShapeElement(outshaphandel, NULL, shap, 4, ACTIVEMODEL->Is3d(), *ACTIVEMODEL))
{
//输出错误信息 v0
printf("shap创建失败");
return;
}
else
{
//outshaphandel.AddToModel();
mdlElement_add(&outShape);
}

mdlCurrTrans_end(); 

Parents Reply Children
No Data