cgma
|
#include <CubitPoint.hpp>
Public Member Functions | |
CubitPoint () | |
virtual | ~CubitPoint () |
virtual int | id ()=0 |
virtual void | set_id (int) |
virtual double | x ()=0 |
virtual double | y ()=0 |
virtual double | z ()=0 |
virtual void | set (const CubitVector &pos)=0 |
virtual void | marked (int marked) |
virtual int | marked () |
virtual CubitVector | coordinates () const =0 |
virtual void | coordinates (double point_array[3])=0 |
virtual void | add_facet (CubitFacet *facet)=0 |
virtual void | remove_facet (CubitFacet *facet)=0 |
virtual int | num_adj_facets ()=0 |
virtual void | facets (DLIList< CubitFacet * > &facet_list)=0 |
virtual void | edges (DLIList< CubitFacetEdge * > &edge_list)=0 |
virtual void | points (DLIList< CubitPoint * > &point_list)=0 |
virtual void | tris (DLIList< CubitFacet * > &facet_list) |
virtual void | normal (CubitVector &surf_norm) |
virtual CubitVector | normal () |
virtual CubitVector * | normal_ptr () |
virtual void | set_normal (CubitVector &surf_norm) |
virtual void | reset_normal () |
virtual void | d_coef (const double d_coefficient) |
virtual double | d_coef () |
virtual double | u () |
virtual double | v () |
virtual double | size () |
virtual void | set_uv (double u, double v) |
virtual void | set_uvs (double u, double v, double s) |
virtual CubitStatus | get_uv (CubitFacet *facet, double &u, double &v) |
virtual CubitStatus | get_uvs (CubitFacet *facet, double &u, double &v, double &s) |
virtual void | du (CubitVector &duvec) |
virtual CubitVector | du () |
virtual void | dv (CubitVector &dvvec) |
virtual CubitVector | dv () |
virtual double * | coef_vector () |
virtual void | coef_vector (const CubitMatrix &coef) |
virtual CubitStatus | merge_points (CubitPoint *cp, CubitBoolean keep_point=CUBIT_FALSE) |
void | shared_facets (CubitPoint *other_point, CubitFacet *&facet1, CubitFacet *&facet2) |
void | shared_facets (CubitPoint *other_point, DLIList< CubitFacet * > &result_list) |
CubitFacetEdge * | shared_edge (CubitPoint *other_point) |
void | adjacent_points (CubitPoint **adj_points, int &num_adj_points) |
void | adjacent_points (DLIList< CubitPoint * > &result_list) |
CubitBox | bounding_box () |
void | facets_on_surf (int surf_id, DLIList< CubitFacet * > &facet_list, CubitBoolean &on_internal_boundary) |
CubitVector | normal (CubitFacet *facet_ptr) |
CubitVector | normal (CubitQuadFacet *qfacet_ptr) |
CubitVector | normal (CubitFacetEdge *edge_ptr) |
CubitVector | tangent (CubitFacetEdge *edge_ptr, double mindot) |
void | next_feature_edges (CubitFacetEdge *this_edge_ptr, DLIList< CubitFacetEdge * > feature_edge_list) |
CubitVector | project_to_tangent_plane (CubitVector &pt) |
void | transform_to_local (CubitVector &glob_vec, CubitVector &loc_vec) |
void | transform_to_global (CubitVector &loc_vec, CubitVector &glob_vec) |
void | define_tangent_vectors () |
void | get_parents (DLIList< FacetEntity * > &facet_list) |
void | debug_draw (int color=-1, int flush=1, int draw_uv=0) |
void | compute_avg_normal () |
CubitFacetEdge * | get_edge (CubitPoint *other_point) |
void | transform (CubitTransformMatrix &tfmat) |
void | rotate_normal (CubitTransformMatrix &rotmat) |
CubitStatus | check_inverted_facets (const CubitVector &new_position) |
void | set_as_feature () |
CubitBoolean | is_feature () |
Static Public Member Functions | |
static void | set_box_tol (double tol) |
Protected Attributes | |
int | markedFlag |
CubitVector * | surfNormal |
double | dCoef |
double | uVal |
double | vVal |
double | sizeVal |
CubitVector * | surfU |
CubitVector * | surfV |
double * | coefVector |
IttyBit | isFeature |
Static Private Attributes | |
static double | boxTol = GEOMETRY_RESABS |
Definition at line 45 of file CubitPoint.hpp.
Definition at line 20 of file CubitPoint.cpp.
: markedFlag(0), surfNormal(NULL), dCoef(0.0), uVal(0.0), vVal(0.0), sizeVal(0.0), surfU(NULL), surfV(NULL), coefVector(NULL), isFeature(0) { }
CubitPoint::~CubitPoint | ( | ) | [virtual] |
Definition at line 36 of file CubitPoint.cpp.
{ if (surfNormal) { delete surfNormal; } if (surfU) { delete surfU; } if (surfV) { delete surfV; } if (coefVector) { delete coefVector; } }
virtual void CubitPoint::add_facet | ( | CubitFacet * | facet | ) | [pure virtual] |
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
void CubitPoint::adjacent_points | ( | CubitPoint ** | adj_points, |
int & | num_adj_points | ||
) |
Definition at line 349 of file CubitPoint.cpp.
{ int i, j, k, index = -1, nextindex = -1; CubitBoolean found; CubitFacet *facet; num_adj_points = 0; DLIList <CubitFacet *> attached_facets; facets( attached_facets ); for(i=0; i<attached_facets.size(); i++) { facet = attached_facets.get_and_step(); found = CUBIT_FALSE; for (j=0; j<3 && !found; j++) { if (facet->point(j) == this) { index = (j+1)%3; nextindex = (j+2)%3; found = CUBIT_TRUE; } } if (found) { found = CUBIT_FALSE; adj_points[num_adj_points++] = facet->point(index); for (k=0; k<num_adj_points-1 && !found; k++) { if(adj_points[k] == facet->point(nextindex)){ found = CUBIT_TRUE; } } if (!found) { adj_points[num_adj_points++] = facet->point(nextindex); } } } }
void CubitPoint::adjacent_points | ( | DLIList< CubitPoint * > & | result_list | ) |
Definition at line 382 of file CubitPoint.cpp.
{ DLIList <CubitFacet *> attached_facets; facets( attached_facets ); for( int i = attached_facets.size(); i--; ) { CubitPoint *pt1, *pt2; attached_facets.get_and_step()->opposite_edge( this, pt1, pt2 ); result.append_unique(pt1); result.append_unique(pt2); } }
CubitBox CubitPoint::bounding_box | ( | void | ) |
Definition at line 593 of file CubitPoint.cpp.
{ CubitVector ptmin( coordinates().x() - boxTol, coordinates().y() - boxTol, coordinates().z() - boxTol ); CubitVector ptmax( coordinates().x() + boxTol, coordinates().y() + boxTol, coordinates().z() + boxTol ); CubitBox ptbox( ptmin, ptmax ); return ptbox; }
CubitStatus CubitPoint::check_inverted_facets | ( | const CubitVector & | new_position | ) |
Definition at line 781 of file CubitPoint.cpp.
{ DLIList<CubitFacet*> facets; this->facets(facets); while( facets.size() ) { CubitFacet* facet = facets.pop(); int index = facet->point_index(this); CubitVector corner = facet->point((index+1)%3)->coordinates(); CubitVector opposite_edge = facet->point((index+2)%3)->coordinates(); opposite_edge -= corner; CubitVector old_edge = corner - coordinates(); CubitVector new_edge = corner - pos; old_edge *= opposite_edge; new_edge *= opposite_edge; if ( (old_edge % new_edge) <= 0.0 ) return CUBIT_FAILURE; } return CUBIT_SUCCESS; }
double * CubitPoint::coef_vector | ( | ) | [inline, virtual] |
Definition at line 269 of file CubitPoint.hpp.
{ assert (coefVector != NULL); return coefVector; }
void CubitPoint::coef_vector | ( | const CubitMatrix & | coef | ) | [inline, virtual] |
Definition at line 210 of file CubitPoint.hpp.
{ if (!coefVector) coefVector = new double[5]; for (int i=0; i<5; i++) { coefVector[i] = input_matrix.get(i,0); } }
void CubitPoint::compute_avg_normal | ( | ) |
Reimplemented in ImprintPointData, FaceterPointData, and CubitPointData.
Definition at line 546 of file CubitPoint.cpp.
{ int j; DLIList<CubitFacet*> adj_facet_list; facets(adj_facet_list); if (adj_facet_list.size() > 0) { CubitVector avg_normal(0.0e0, 0.0e0, 0.0e0); double totangle = 0.0e0; // weight the normal by the spanning angle at the point for (j = 0; j < adj_facet_list.size(); j++) { CubitFacet* facet = adj_facet_list.get_and_step(); double angle = facet->angle( this ); facet->weight( angle ); totangle += angle; } for (j = 0; j < adj_facet_list.size(); j++) { CubitFacet* facet = adj_facet_list.get_and_step(); CubitVector normal = facet->normal(); normal.normalize(); avg_normal += (facet->weight() / totangle) * normal; } avg_normal.normalize(); if(!surfNormal) { surfNormal = new CubitVector ( avg_normal ); } else { *surfNormal = avg_normal; } dCoef = -(this->coordinates()%avg_normal); } }
virtual CubitVector CubitPoint::coordinates | ( | ) | const [pure virtual] |
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
virtual void CubitPoint::coordinates | ( | double | point_array[3] | ) | [pure virtual] |
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
virtual void CubitPoint::d_coef | ( | const double | d_coefficient | ) | [inline, virtual] |
Definition at line 111 of file CubitPoint.hpp.
{dCoef = d_coefficient;};
virtual double CubitPoint::d_coef | ( | ) | [inline, virtual] |
Definition at line 112 of file CubitPoint.hpp.
{return dCoef;};
void CubitPoint::debug_draw | ( | int | color = -1 , |
int | flush = 1 , |
||
int | draw_uv = 0 |
||
) | [virtual] |
Implements FacetEntity.
Definition at line 527 of file CubitPoint.cpp.
{ if ( color == -1 ) color = CUBIT_YELLOW_INDEX; CubitVector vec = this->coordinates(); GfxDebug::draw_point(vec, color); if (flush) GfxDebug::flush(); }
void CubitPoint::define_tangent_vectors | ( | ) |
Definition at line 403 of file CubitPoint.cpp.
{ // define orthogonal vectors to the normal that are tangent to the // the surface. Note that du and dv are not defined in any global // parametric space - they are only defined locally. Their directions // are defined arbitrarily in the tangent plane by taking the smallest // components of the normal vector and setting them to "1" for the // du vector and then solving for the other component so that the // dot product of du and the normal will be zero. dv is just the cross // product of the normal and du CubitVector absnorm, duvec, dvvec; CubitVector surf_normal = normal(); absnorm.x( fabs(surf_normal.x()) ); absnorm.y( fabs(surf_normal.y()) ); absnorm.z( fabs(surf_normal.z()) ); if (absnorm.x() >= absnorm.y() && absnorm.x() >= absnorm.z()) { duvec.x( (-surf_normal.y() - surf_normal.z()) / surf_normal.x() ); duvec.y( 1.0e0 ); duvec.z( 1.0e0 ); } else if (absnorm.y() >= absnorm.z() ) { duvec.x( 1.0e0 ); duvec.y( (-surf_normal.x() - surf_normal.z()) / surf_normal.y() ); duvec.z( 1.0e0 ); } else { duvec.x( 1.0e0 ); duvec.y( 1.0e0 ); duvec.z( (-surf_normal.x() - surf_normal.y()) / surf_normal.z() ); } duvec.normalize(); dvvec = surf_normal * duvec; // //sjowen debug // CubitVector test = dvvec * surf_normal; // double dot = test % duvec; // if (dot < 0.999999999999) { // PRINT_ERROR("Error in define_tangent_vectors"); // } du( duvec ); dv( dvvec ); }
void CubitPoint::du | ( | CubitVector & | duvec | ) | [inline, virtual] |
Definition at line 245 of file CubitPoint.hpp.
{ if(!surfU) surfU = new CubitVector (duvec); else *surfU = duvec; }
CubitVector CubitPoint::du | ( | ) | [inline, virtual] |
Definition at line 257 of file CubitPoint.hpp.
void CubitPoint::dv | ( | CubitVector & | dvvec | ) | [inline, virtual] |
Definition at line 251 of file CubitPoint.hpp.
{ if(!surfV) surfV = new CubitVector (dvvec); else *surfV = dvvec; }
CubitVector CubitPoint::dv | ( | ) | [inline, virtual] |
Definition at line 263 of file CubitPoint.hpp.
virtual void CubitPoint::edges | ( | DLIList< CubitFacetEdge * > & | edge_list | ) | [pure virtual] |
Implements FacetEntity.
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
virtual void CubitPoint::facets | ( | DLIList< CubitFacet * > & | facet_list | ) | [pure virtual] |
Implements FacetEntity.
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
void CubitPoint::facets_on_surf | ( | int | surf_id, |
DLIList< CubitFacet * > & | facet_list, | ||
CubitBoolean & | on_internal_boundary | ||
) |
Definition at line 615 of file CubitPoint.cpp.
{ DLIList<CubitFacet *>all_facets; facets( all_facets ); int ii; CubitFacet *facet; for (ii=0; ii<all_facets.size(); ii++) { facet = all_facets.get_and_step(); if (facet->tool_id() == surf_id) { facet_list.append( facet ); } } if (facet_list.size() == 0) { on_internal_boundary = CUBIT_FALSE; } else if (all_facets.size() == facet_list.size()) { on_internal_boundary = CUBIT_FALSE; } else { on_internal_boundary = CUBIT_TRUE; } }
CubitFacetEdge * CubitPoint::get_edge | ( | CubitPoint * | other_point | ) |
Definition at line 722 of file CubitPoint.cpp.
{ DLIList<CubitFacetEdge *>edge_list; edges(edge_list); int ii; CubitFacetEdge *edge_ptr; for (ii=0; ii<edge_list.size(); ii++) { edge_ptr = edge_list.get_and_step(); if (edge_ptr->other_point( this ) == other_point) return edge_ptr; } return (CubitFacetEdge *)NULL; }
void CubitPoint::get_parents | ( | DLIList< FacetEntity * > & | facet_list | ) | [virtual] |
Implements FacetEntity.
Definition at line 510 of file CubitPoint.cpp.
{ DLIList<CubitFacetEdge*> edge_list; edges( edge_list ); int ii; for (ii=0; ii<edge_list.size(); ii++) facet_list.append( edge_list.get_and_step() ); }
CubitStatus CubitPoint::get_uv | ( | CubitFacet * | facet, |
double & | u, | ||
double & | v | ||
) | [virtual] |
Definition at line 654 of file CubitPoint.cpp.
{ CubitStatus stat; TDFacetBoundaryPoint *td_bfp = TDFacetBoundaryPoint::get_facet_boundary_point( this ); if (!td_bfp) { u = uVal; v = vVal; stat = CUBIT_SUCCESS; } else { stat = td_bfp->get_uv( facet, u, v ); } return stat; }
CubitStatus CubitPoint::get_uvs | ( | CubitFacet * | facet, |
double & | u, | ||
double & | v, | ||
double & | s | ||
) | [virtual] |
Definition at line 681 of file CubitPoint.cpp.
{ CubitStatus stat; TDFacetBoundaryPoint *td_bfp = TDFacetBoundaryPoint::get_facet_boundary_point( this ); if (!td_bfp) { u = uVal; v = vVal; s = sizeVal; stat = CUBIT_SUCCESS; } else { stat = td_bfp->get_uvs( facet, u, v, s ); } return stat; }
virtual int CubitPoint::id | ( | ) | [pure virtual] |
CubitBoolean CubitPoint::is_feature | ( | ) | [inline] |
Definition at line 204 of file CubitPoint.hpp.
{return (isFeature ? CUBIT_TRUE : CUBIT_FALSE); }
virtual void CubitPoint::marked | ( | int | marked | ) | [inline, virtual] |
Reimplemented in ImprintPointData, FaceterPointData, and CubitPointData.
Definition at line 88 of file CubitPoint.hpp.
{markedFlag = marked;};
virtual int CubitPoint::marked | ( | ) | [inline, virtual] |
Reimplemented in ImprintPointData, FaceterPointData, and CubitPointData.
Definition at line 89 of file CubitPoint.hpp.
{return markedFlag;};
CubitStatus CubitPoint::merge_points | ( | CubitPoint * | cp, |
CubitBoolean | keep_point = CUBIT_FALSE |
||
) | [virtual] |
Reimplemented in CubitPointData.
Definition at line 707 of file CubitPoint.cpp.
{ // this virtual function must be defined in the inheriting class if you get here assert(0); return CUBIT_FAILURE; }
void CubitPoint::next_feature_edges | ( | CubitFacetEdge * | this_edge_ptr, |
DLIList< CubitFacetEdge * > | feature_edge_list | ||
) |
Definition at line 299 of file CubitPoint.cpp.
{ //CubitFacetEdge *next_edge_ptr = NULL; DLIList<CubitFacetEdge*> edge_list; edges( edge_list ); int ii; CubitFacetEdge *edge_ptr = NULL; for (ii=0; ii<edge_list.size(); ii++) { edge_ptr = edge_list.get_and_step(); if (edge_ptr != this_edge_ptr) { if (edge_ptr->is_feature()) { feature_edge_list.append(edge_ptr); } } } }
void CubitPoint::normal | ( | CubitVector & | surf_norm | ) | [inline, virtual] |
Definition at line 218 of file CubitPoint.hpp.
{ if(!surfNormal) surfNormal = new CubitVector (surf_norm); else *surfNormal = surf_norm; }
CubitVector CubitPoint::normal | ( | ) | [inline, virtual] |
Definition at line 224 of file CubitPoint.hpp.
{ if (surfNormal==NULL) compute_avg_normal(); return *surfNormal; }
CubitVector CubitPoint::normal | ( | CubitFacet * | facet_ptr | ) |
Definition at line 144 of file CubitPoint.cpp.
{ TDFacetBoundaryPoint *td_bfp = TDFacetBoundaryPoint::get_facet_boundary_point( this ); if (td_bfp == NULL) { return normal(); } else { CubitVector norm; td_bfp->get_normal( facet_ptr, norm ); return norm; } }
CubitVector CubitPoint::normal | ( | CubitQuadFacet * | qfacet_ptr | ) |
Definition at line 169 of file CubitPoint.cpp.
{ CubitFacet *facet_ptr = qfacet_ptr->get_tri_facet_at_point( this ); return normal( facet_ptr ); }
CubitVector CubitPoint::normal | ( | CubitFacetEdge * | edge_ptr | ) |
Definition at line 185 of file CubitPoint.cpp.
{ TDFacetBoundaryPoint *td_bfp = TDFacetBoundaryPoint::get_facet_boundary_point( this ); if (td_bfp == NULL) { return normal(); } else { CubitVector norm; td_bfp->get_normal( edge_ptr, norm ); return norm; } }
CubitVector * CubitPoint::normal_ptr | ( | ) | [inline, virtual] |
Definition at line 230 of file CubitPoint.hpp.
{ return surfNormal; }
virtual int CubitPoint::num_adj_facets | ( | ) | [pure virtual] |
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
virtual void CubitPoint::points | ( | DLIList< CubitPoint * > & | point_list | ) | [pure virtual] |
Implements FacetEntity.
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
virtual void CubitPoint::remove_facet | ( | CubitFacet * | facet | ) | [pure virtual] |
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
void CubitPoint::reset_normal | ( | ) | [inline, virtual] |
Definition at line 240 of file CubitPoint.hpp.
{ compute_avg_normal(); }
void CubitPoint::rotate_normal | ( | CubitTransformMatrix & | rotmat | ) |
Definition at line 760 of file CubitPoint.cpp.
{ if (surfNormal) { *surfNormal = rotmat * (*surfNormal); } TDFacetBoundaryPoint *td = TDFacetBoundaryPoint::get_facet_boundary_point( this ); if (td) { td->rotate_normal(rotmat); } }
virtual void CubitPoint::set | ( | const CubitVector & | pos | ) | [pure virtual] |
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
void CubitPoint::set_as_feature | ( | ) | [inline] |
Definition at line 203 of file CubitPoint.hpp.
{ isFeature = 1; }
static void CubitPoint::set_box_tol | ( | double | tol | ) | [inline, static] |
Definition at line 207 of file CubitPoint.hpp.
{boxTol = tol;}
virtual void CubitPoint::set_id | ( | int | ) | [inline, virtual] |
void CubitPoint::set_normal | ( | CubitVector & | surf_norm | ) | [inline, virtual] |
Definition at line 235 of file CubitPoint.hpp.
{ *surfNormal = surf_norm; }
virtual void CubitPoint::set_uv | ( | double | u, |
double | v | ||
) | [inline, virtual] |
virtual void CubitPoint::set_uvs | ( | double | u, |
double | v, | ||
double | s | ||
) | [inline, virtual] |
CubitFacetEdge * CubitPoint::shared_edge | ( | CubitPoint * | other_point | ) |
Definition at line 112 of file CubitPoint.cpp.
{ // CubitFacetEdge *edge = NULL; // DLIList <CubitFacetEdge *> attached_edges; // edges( attached_edges ); // if( attached_edges.size() > 0 && other_pt ) // { // for( int i = attached_edges.size(); i > 0; i-- ) // { // edge = attached_edges.get_and_step(); // if( edge->contains( other_pt ) ) // { // return edge; // } // } // } // return edge; return get_edge(other_pt); }
void CubitPoint::shared_facets | ( | CubitPoint * | other_point, |
CubitFacet *& | facet1, | ||
CubitFacet *& | facet2 | ||
) |
Definition at line 60 of file CubitPoint.cpp.
{ f1 = f2 = 0; DLIList <CubitFacet *> attached_facets; facets( attached_facets ); if( attached_facets.size() > 0 && other_pt ) { for( int i = attached_facets.size(); i > 0; i-- ) { CubitFacet* facet = attached_facets.get_and_step(); if( facet->contains( other_pt ) ) { //three facets?? assert( !f2 ); if( f1 ) f2 = facet; else f1 = facet; } } } }
void CubitPoint::shared_facets | ( | CubitPoint * | other_point, |
DLIList< CubitFacet * > & | result_list | ||
) |
Definition at line 84 of file CubitPoint.cpp.
{ DLIList <CubitFacet *> attached_facets; facets( attached_facets ); if( attached_facets.size() > 0 && other_pt ) { for( int i = attached_facets.size(); i > 0; i-- ) { CubitFacet* facet = attached_facets.get_and_step(); if( facet->contains( other_pt ) ) { result_set.append( facet ); } } } }
virtual double CubitPoint::size | ( | ) | [inline, virtual] |
Definition at line 116 of file CubitPoint.hpp.
{return sizeVal; };
CubitVector CubitPoint::tangent | ( | CubitFacetEdge * | edge_ptr, |
double | mindot | ||
) |
Definition at line 211 of file CubitPoint.cpp.
{ CubitPoint *p0 = edge_ptr->point( 0 ); CubitPoint *p1 = edge_ptr->point( 1 ); int ii; assert( p0 == this || p1 == this ); // the point isn't on the edge // if this isn't a feature edge, just return the tangent vector of // the edge. Otherwise compute the tangent based on neighboring // feature edges CubitVector pt_tangent; if (!edge_ptr->is_feature()) { CubitVector tmp_vec = coordinates(); edge_ptr->edge_tangent( tmp_vec, pt_tangent ); } else { // compute tangent for feature edge at previous if (p0 == this) { CubitFacetEdge *prev_edge; DLIList <CubitFacetEdge *>feature_edge_list; next_feature_edges( edge_ptr, feature_edge_list ); // average the edges that meet the min_dot criteria CubitVector e1 = p1->coordinates() - p0->coordinates(); pt_tangent = e1; e1.normalize(); for (ii=0; ii<feature_edge_list.size(); ii++) { prev_edge = feature_edge_list.get_and_step(); CubitPoint *p2 = prev_edge->other_point( p0 ); CubitVector e0 = p0->coordinates() - p2->coordinates(); e0.normalize(); if (e0 % e1 >= min_dot) { pt_tangent += (p0->coordinates() - p2->coordinates()); } } if (feature_edge_list.size() == 0) pt_tangent = e1; else pt_tangent.normalize(); } // compute tangent for feature edge at next else if (p1 == this) { CubitFacetEdge *next_edge; DLIList <CubitFacetEdge *>feature_edge_list; next_feature_edges( edge_ptr, feature_edge_list ); // average the edges that meet the min_dot criteria CubitVector e1 = p1->coordinates() - p0->coordinates(); pt_tangent = e1; e1.normalize(); for (ii=0; ii<feature_edge_list.size(); ii++) { next_edge = feature_edge_list.get_and_step(); CubitPoint *p2 = next_edge->other_point( p1 ); CubitVector e0 = p2->coordinates() - p1->coordinates(); e0.normalize(); if (e0 % e1 >= min_dot) { pt_tangent += (p2->coordinates() - p1->coordinates()); } } if (feature_edge_list.size() == 0) pt_tangent = e1; else pt_tangent.normalize(); } } return pt_tangent; }
void CubitPoint::transform | ( | CubitTransformMatrix & | tfmat | ) |
Definition at line 745 of file CubitPoint.cpp.
{ CubitVector loc; loc = tfmat * coordinates(); set( loc ); }
void CubitPoint::transform_to_global | ( | CubitVector & | loc_vec, |
CubitVector & | glob_vec | ||
) |
Definition at line 478 of file CubitPoint.cpp.
{ // Multiply by transformation matrix CubitVector vect; CubitVector surf_u = du(); CubitVector surf_v = dv(); CubitVector surf_normal = normal(); vect.x( loc_vec.x() * surf_u.x ()+ loc_vec.y() * surf_v.x() + loc_vec.z() * surf_normal.x() ); vect.y( loc_vec.x() * surf_u.y ()+ loc_vec.y() * surf_v.y() + loc_vec.z() * surf_normal.y() ); vect.z( loc_vec.x() * surf_u.z ()+ loc_vec.y() * surf_v.z() + loc_vec.z() * surf_normal.z() ); // Translate from origin glob_vec = vect + this->coordinates(); }
void CubitPoint::transform_to_local | ( | CubitVector & | glob_vec, |
CubitVector & | loc_vec | ||
) |
Definition at line 456 of file CubitPoint.cpp.
{ // Translate to local origin at point CubitVector vect = glob_vec - this->coordinates(); // Multiply by transpose (inverse) of transformation vector */ loc_vec.x( vect % du() ); loc_vec.y( vect % dv() ); loc_vec.z( vect % normal() ); }
virtual void CubitPoint::tris | ( | DLIList< CubitFacet * > & | facet_list | ) | [inline, virtual] |
Reimplemented in CubitPointData.
Definition at line 102 of file CubitPoint.hpp.
{ facets(facet_list); }
virtual double CubitPoint::u | ( | ) | [inline, virtual] |
Definition at line 114 of file CubitPoint.hpp.
{ return uVal; };
virtual double CubitPoint::v | ( | ) | [inline, virtual] |
Definition at line 115 of file CubitPoint.hpp.
{ return vVal; };
virtual double CubitPoint::x | ( | ) | [pure virtual] |
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
virtual double CubitPoint::y | ( | ) | [pure virtual] |
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
virtual double CubitPoint::z | ( | ) | [pure virtual] |
Implemented in ImprintPointData, FaceterPointData, and CubitPointData.
double CubitPoint::boxTol = GEOMETRY_RESABS [static, private] |
Definition at line 49 of file CubitPoint.hpp.
double* CubitPoint::coefVector [protected] |
Definition at line 69 of file CubitPoint.hpp.
double CubitPoint::dCoef [protected] |
Definition at line 59 of file CubitPoint.hpp.
IttyBit CubitPoint::isFeature [protected] |
Definition at line 72 of file CubitPoint.hpp.
int CubitPoint::markedFlag [protected] |
Definition at line 53 of file CubitPoint.hpp.
double CubitPoint::sizeVal [protected] |
Definition at line 63 of file CubitPoint.hpp.
CubitVector* CubitPoint::surfNormal [protected] |
Definition at line 56 of file CubitPoint.hpp.
CubitVector* CubitPoint::surfU [protected] |
Definition at line 66 of file CubitPoint.hpp.
CubitVector * CubitPoint::surfV [protected] |
Definition at line 66 of file CubitPoint.hpp.
double CubitPoint::uVal [protected] |
Definition at line 63 of file CubitPoint.hpp.
double CubitPoint::vVal [protected] |
Definition at line 63 of file CubitPoint.hpp.