UG二次开发,UFUN选边建立包容块(抄函数)

tag_t CreateBlockFromEdges(std::vector<TaggedObject*>edges)
{
    if (edges.size() < 0){ uc1601("没有选择对象,请重新选择", 1); }
    double minConner[3] = { 0.0,0.0,0.0 };
    double maxConner[3] = { 0.0,0.0,0.0 };
    double dir[3][3] = { 0.0 };
    double dis[3] = { 0.0,0.0,0.0 };
    double tempP1[3] = { 0.0,0.0,0.0 };
    double tempP2[3] = { 0.0,0.0,0.0 };
    double tempP3[3] = { 0.0,0.0,0.0 };
    double minX = 0.0, minY = 0.0, minZ = 0.0, maxX = 0.0, maxY = 0.0, maxZ = 0.0;
    
    for (size_t i = 0; i < edges.size(); i++)
    {
        UF_MODL_ask_bounding_box_exact(edges[i]->Tag(), NULL, minConner, dir, dis);

        maxConner[0] = minConner[0] + dis[0];
        maxConner[1] = minConner[1] + dis[1];
        maxConner[2] = minConner[2] + dis[2];   
        
        if (i==0)
        {
            minX = minConner[0];
            minY = minConner[1];
            minZ = minConner[2];
            maxX = minConner[0]+ dis[0];
            maxY = minConner[1]+ dis[1];
            maxZ = minConner[2]+ dis[2];
        }
        else
        {           
            if (minX > minConner[0]){ minX = minConner[0]; }
            if (minY > minConner[1]){ minY = minConner[1]; }
            if (minZ > minConner[2]){ minZ = minConner[2]; }

            if (maxX < maxConner[0]) { maxX = maxConner[0]; }
            if (maxY < maxConner[1]) { maxY = maxConner[1]; }
            if (maxZ < maxConner[2]) { maxZ = maxConner[2]; }       
            
        }

    }
    double minPoint[3] = { minX ,minY ,minZ };
    double maxPoint[3] = { maxX ,maxY ,maxZ }; 

    tag_t cutBlockTag = CreateBlockFromMinMaxPoint(minPoint, maxPoint, 254, 186, 50);

    return cutBlockTag;

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值