Моя структура с половиной ребра не получает соответствующее лицо в списке - PullRequest
0 голосов
/ 20 декабря 2018

Я разработал половинную структуру ребер в C # для извлечения характеристик 3D-модели b-rep.но когда я хочу извлечь элемент цилиндра, плоская поверхность модели не находит левую половину или правую половину, которая соответствует цилиндрической грани.Я хочу проверить плоскую грань лица, имеющую поверхность типа экземпляра Цилиндрическая поверхность, на которой отображается ошибка «Ссылка на объект не установлена ​​на экземпляр объекта».

У меня есть грань плоскости извлечения, которая является одной из сторон элементано его соответствующая полужабкая грань не найдена.где я проверил свою ошибку.

if {(findHalfEdge (loop.ledge) .wloop.lface.surface.GetType (). Name.Equals ("Cylindrical_Surface") && findHalfEdge (loop.ledge.nexth).wloop.lface.surface.GetType (). Name.Equals ("Cylindrical_Surface"))

// найти другую половину половины наполовину открытым HalfEdge findHalfEdge (HalfEdge hEdge) {Edge edge = hEdge.край;//Console.WriteLine(edge.leftHalfEdge.Equals(hEdge));

        if (edge.leftHalfEdge != null && edge.leftHalfEdge.Equals(hEdge))
            //{
            return edge.rightHalfEdge;
        //}
        else if (edge.rightHalfEdge != null && edge.rightHalfEdge.Equals(hEdge))
            //{
            return edge.leftHalfEdge;
        //}
        else
            //{
            return null;
        //}
    }

я хочу получить экземпляр лица типа Cylindrical_Surface.

...