本文整理汇总了C++中DLIList::intersect_unordered方法的典型用法代码示例。如果您正苦于以下问题:C++ DLIList::intersect_unordered方法的具体用法?C++ DLIList::intersect_unordered怎么用?C++ DLIList::intersect_unordered使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DLIList
的用法示例。
在下文中一共展示了DLIList::intersect_unordered方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: simplify_curves_in_volume
//.........这里部分代码省略.........
// keep the face if we want it respected
if(attached_ref_edges.size() == 1 &&
respect_edge_list.is_in_list(attached_ref_edges.get()))
continue;
// Don't consider ref_faces that are already in the list
if( attached_ref_edges.size() == 1 &&
!ref_edge_ptr->marked())
{
DLIList<RefVolume*> ref_volumes;
ref_edge_ptr->ref_volumes( ref_volumes );
if( !ref_volumes.size() || ref_volumes.size()==1 )
{
// Only add the ref_face if it meets the feature angle criteria
if(composite_curves(seed_ref_edge,ref_edge_ptr,angle_in))
{
ref_edge_ptr->marked( CUBIT_TRUE );
seed_edges.append(ref_edge_ptr);
composite_edges.append(ref_edge_ptr);
}
}
}
}
}
composite_edges.uniquify_unordered();
ref_edge_list -= composite_edges;
if(!preview &&
composite_edges.size()>1)
{
DLIList<RefVertex*> result_vertices;
DLIList<RefEdge*> result_edges;
CompositeTool::instance()->composite(
composite_edges,
result_edges,
&result_vertices);
combined_edge_count +=composite_edges.size();
for(int m = result_edges.size();m--;)
result_edges.get_and_step()->marked(CUBIT_TRUE);
new_edge_count+=result_edges.size();
}
else if(preview)
{
int edge_count = composite_edges.size();
for(int i =0;i<edge_count;i++)
{
RefEdge* cur_comp_edge = composite_edges[i];
DLIList<RefVertex*> refvertices;
for(int j =0;j<edge_count;j++)
{
if(i==j) continue;
composite_edges[j]->ref_vertices(refvertices);
}
refvertices.uniquify_unordered();
DLIList<RefVertex*> temp_refvertices;
cur_comp_edge->ref_vertices(temp_refvertices);
refvertices.intersect_unordered(temp_refvertices);
preview_removed+=refvertices;
}
}
if(prog_ptr)
{
double frac = 1.0-(double)ref_edge_list.size()/(double)start_edge_count;
prog_ptr->percent(frac);
}
}
if(prog_ptr)
{
prog_ptr->end();
prog_ptr = 0;
}
if(preview)
{
preview_vertices -=preview_removed;
for(int c = preview_vertices.size();c--;)
GfxDebug::draw_ref_vertex(preview_vertices.get_and_step(),7);
}
else if(combined_edge_count>new_edge_count)
{
PRINT_INFO("Simplified %d curves into %d curves\n",
combined_edge_count,
new_edge_count);
}
// make sure to set all of the surface markers to false
DLIList<RefEdge*> marked_edge_list;
ref_volume->ref_edges(marked_edge_list);
for(int i =0;i<marked_edge_list.size();i++)
marked_edge_list[i]->marked(CUBIT_FALSE);
return CUBIT_SUCCESS;
}