cgma
|
#include <MidPlaneTool.hpp>
Public Member Functions | |
MidPlaneTool () | |
~MidPlaneTool () | |
CubitStatus | create_midplane (RefFace *ref_face1, RefFace *ref_face2, Body *body_ptr, DLIList< RefFace * > &results_list) |
Private Member Functions | |
CubitStatus | sort_surfaces (RefFace *big_face, RefFace *predecessor, DLIList< RefFace * > &mid_surfaces) |
CubitStatus | get_other_surfs (RefFace *base_face, RefFace *predecessor, DLIList< RefFace * > &other_surfs) |
Private Attributes | |
int | surfIndex |
Definition at line 25 of file MidPlaneTool.hpp.
MidPlaneTool::MidPlaneTool | ( | ) | [inline] |
Definition at line 30 of file MidPlaneTool.hpp.
{surfIndex=0;}
MidPlaneTool::~MidPlaneTool | ( | ) | [inline] |
Definition at line 31 of file MidPlaneTool.hpp.
{}
CubitStatus MidPlaneTool::create_midplane | ( | RefFace * | ref_face1, |
RefFace * | ref_face2, | ||
Body * | body_ptr, | ||
DLIList< RefFace * > & | results_list | ||
) |
CubitStatus MidPlaneTool::get_other_surfs | ( | RefFace * | base_face, |
RefFace * | predecessor, | ||
DLIList< RefFace * > & | other_surfs | ||
) | [private] |
Definition at line 109 of file MidPlaneTool.cpp.
{ DLIList <Loop*> loop_list; DLIList <RefEdge*> loop_edges; DLIList <RefFace*> edge_faces; RefFace *temp_face; RefEdge *temp_edge; Loop* temp_loop; base_face->loops( loop_list ); for ( int ii = loop_list.size(); ii > 0; ii-- ) { temp_loop = loop_list.get_and_step(); loop_edges.clean_out(); temp_loop->ref_edges( loop_edges ); for ( int jj = loop_edges.size(); jj > 0; jj-- ) { temp_edge = loop_edges.get_and_step(); edge_faces.clean_out(); temp_edge->ref_faces( edge_faces ); for ( int kk = edge_faces.size(); kk > 0; kk-- ) { temp_face = edge_faces.get_and_step(); if ( ( temp_face != base_face ) && ( temp_face != predecessor ) ) { other_surfs.append_unique( temp_face ); } } } } return CUBIT_SUCCESS; }
CubitStatus MidPlaneTool::sort_surfaces | ( | RefFace * | big_face, |
RefFace * | predecessor, | ||
DLIList< RefFace * > & | mid_surfaces | ||
) | [private] |
Definition at line 26 of file MidPlaneTool.cpp.
{ DLIList <Loop*> loop_list; DLIList <RefEdge*> loop_edges; DLIList <RefFace*> edge_faces; RefFace *next_face; RefEdge *temp_edge; Loop* temp_loop; base_face->ordered_loops( loop_list ); if(loop_list.size() == 1) { if(surfIndex%2==1) { mid_surfaces.append(base_face); } if ( predecessor == NULL ) { PRINT_ERROR("Bad logic in mid-plane extraction of sorting surfaces.\n"); return CUBIT_SUCCESS; } //Now test to see if there are other surfaces attached to this //single loop (other than predecessor) DLIList <RefFace*> other_surfs; CubitStatus tmp_stat = get_other_surfs(base_face, predecessor, other_surfs); if ( tmp_stat != CUBIT_SUCCESS ) return CUBIT_FAILURE; int jj; for ( jj = other_surfs.size(); jj > 0; jj-- ) { next_face = other_surfs.get_and_step(); surfIndex++; sort_surfaces(next_face,base_face,mid_surfaces); surfIndex--; } return CUBIT_SUCCESS; } if(surfIndex%2==1) { mid_surfaces.append(base_face); } loop_list.reset(); loop_list.remove(); for ( int ii = loop_list.size(); ii > 0; ii-- ) { temp_loop = loop_list.get_and_step(); loop_edges.clean_out(); edge_faces.clean_out(); temp_loop->ref_edges( loop_edges ); temp_edge = loop_edges.get(); temp_edge->ref_faces( edge_faces ); if( edge_faces.size() > 2 ) { PRINT_ERROR("Bad Logic.\n"); return CUBIT_FAILURE; } if(edge_faces.size() == 2) { if(edge_faces.get() == base_face) { next_face = edge_faces.next(); } else { next_face = edge_faces.get(); } surfIndex++; sort_surfaces(next_face,base_face,mid_surfaces); surfIndex--; } } return CUBIT_SUCCESS; }
int MidPlaneTool::surfIndex [private] |
Definition at line 41 of file MidPlaneTool.hpp.