cgma
Surface Class Reference

#include <Surface.hpp>

Inheritance diagram for Surface:
GeometryEntity TopologyBridge CompositeSurface FacetSurface OCCSurface PartitionSurface SurfaceSM SubSurface

List of all members.

Public Types

typedef Curve ChildType

Public Member Functions

 Surface ()
virtual ~Surface ()
virtual CubitSense get_shell_sense (ShellSM *shell_ptr) const =0
virtual void closest_point_trimmed (CubitVector from_point, CubitVector &point_on_surface)=0
virtual void closest_points_trimmed (std::vector< CubitVector > &from_points_list, std::vector< CubitVector > &points_on_surface_list)
virtual CubitStatus closest_point_along_vector (CubitVector &from_point, CubitVector &along_vector, CubitVector &point_on_surface)=0
virtual CubitStatus get_point_normal (CubitVector &point, CubitVector &normal)=0
virtual void param_dir (CubitVector &, CubitVector &, double &, double &)
virtual CubitStatus closest_point_uv_guess (CubitVector const &location, double &u_guess, double &v_guess, CubitVector *closest_location=NULL, CubitVector *unit_normal=NULL)=0
virtual CubitStatus closest_point (CubitVector const &location, CubitVector *closest_location=NULL, CubitVector *unit_normal=NULL, CubitVector *curvature1=NULL, CubitVector *curvature2=NULL)=0
virtual CubitStatus closest_points (DLIList< CubitVector * > &location_list, DLIList< CubitVector * > *closest_location_list=NULL, DLIList< CubitVector * > *unit_normal_list=NULL, DLIList< CubitVector * > *curvature1_list=NULL, DLIList< CubitVector * > *curvature2_list=NULL)
virtual CubitStatus principal_curvatures (CubitVector const &location, double &curvature_1, double &curvature_2, CubitVector *closest_location=NULL)=0
virtual CubitStatus evaluate (double u, double v, CubitVector *position, CubitVector *normal, CubitVector *curvature1, CubitVector *curvature2)=0
virtual CubitStatus evaluate (double u, double v, CubitVector &pos, CubitVector deriv1[2], CubitVector deriv2[3])
virtual CubitVector position_from_u_v (double u, double v)=0
virtual CubitStatus u_v_from_position (CubitVector const &location, double &u, double &v, CubitVector *closest_location=NULL)=0
virtual CubitBoolean is_periodic ()=0
virtual CubitBoolean is_periodic_in_U (double &period)=0
virtual CubitBoolean is_periodic_in_V (double &period)=0
virtual CubitBoolean is_singular_in_U (double u_param)=0
virtual CubitBoolean is_singular_in_V (double v_param)=0
virtual CubitBoolean is_closed_in_U ()
virtual CubitBoolean is_closed_in_V ()
virtual CubitStatus uv_derivitives (double u_param, double v_param, CubitVector &du, CubitVector &dv)=0
virtual CubitBoolean is_parametric ()=0
virtual CubitBoolean get_param_range_U (double &lower_bound, double &upper_bound)=0
virtual CubitBoolean get_param_range_V (double &lower_bound, double &upper_bound)=0
virtual CubitBoolean is_position_on (CubitVector &test_position)=0
virtual void are_positions_on (DLIList< CubitVector * > &test_position_list, DLIList< CubitBoolean * > &is_on_list)
virtual CubitPointContainment point_containment (const CubitVector &point)=0
virtual CubitPointContainment point_containment (double u, double v)=0
virtual CubitSense get_geometry_sense ()=0
virtual CubitSense get_uv_sense ()
virtual CubitStatus get_projected_distance_on_surface (CubitVector *pos1, CubitVector *pos2, double &distance)=0
virtual GeometryType geometry_type ()
virtual GeometryType is_cylindrical ()
virtual CubitStatus get_nurb_params (bool &rational, int &degree_u, int &degree_v, int &num_cntrl_pts_u, int &num_cntrl_pts_v, DLIList< CubitVector > &cntrl_pts, DLIList< double > &weights, DLIList< double > &u_knots, DLIList< double > &v_knots) const =0
virtual CubitStatus get_sphere_params (CubitVector &center, double &radius) const =0
virtual CubitStatus get_cone_params (CubitVector &center, CubitVector &normal, CubitVector &major_axis, double &radius_ratio, double &sine_angle, double &cos_angle) const =0
virtual CubitStatus get_torus_params (CubitVector &center, CubitVector &normal, double &major_radius, double &minor_radius) const =0

Detailed Description

Definition at line 37 of file Surface.hpp.


Member Typedef Documentation

Definition at line 47 of file Surface.hpp.


Constructor & Destructor Documentation

Definition at line 37 of file Surface.cpp.

{
}
Surface::~Surface ( ) [virtual]

Definition at line 51 of file Surface.cpp.

{}

Member Function Documentation

void Surface::are_positions_on ( DLIList< CubitVector * > &  test_position_list,
DLIList< CubitBoolean * > &  is_on_list 
) [virtual]

Definition at line 109 of file Surface.cpp.

{
  CubitVector *test_position;
  CubitBoolean *is_on;
  test_position_list.reset();
  is_on_list.reset();
  for (int i=0; i<test_position_list.size(); i++)
  {
    test_position = test_position_list.get_and_step();
    is_on = is_on_list.get_and_step();
    *is_on = is_position_on( *test_position );
  }
}
virtual CubitStatus Surface::closest_point ( CubitVector const &  location,
CubitVector closest_location = NULL,
CubitVector unit_normal = NULL,
CubitVector curvature1 = NULL,
CubitVector curvature2 = NULL 
) [pure virtual]
CubitStatus Surface::closest_point_along_vector ( CubitVector from_point,
CubitVector along_vector,
CubitVector point_on_surface 
) [pure virtual]

Implemented in FacetSurface, CompositeSurface, PartitionSurface, OCCSurface, and SubSurface.

Definition at line 125 of file Surface.cpp.

{
  return CUBIT_FAILURE;
}
virtual void Surface::closest_point_trimmed ( CubitVector  from_point,
CubitVector point_on_surface 
) [pure virtual]
virtual CubitStatus Surface::closest_point_uv_guess ( CubitVector const &  location,
double &  u_guess,
double &  v_guess,
CubitVector closest_location = NULL,
CubitVector unit_normal = NULL 
) [pure virtual]
CubitStatus Surface::closest_points ( DLIList< CubitVector * > &  location_list,
DLIList< CubitVector * > *  closest_location_list = NULL,
DLIList< CubitVector * > *  unit_normal_list = NULL,
DLIList< CubitVector * > *  curvature1_list = NULL,
DLIList< CubitVector * > *  curvature2_list = NULL 
) [virtual]

Definition at line 54 of file Surface.cpp.

{
  CubitVector *curvature1, *curvature2;
  CubitVector *unit_normal;
  CubitVector *closest_location;
  CubitVector *location;
  CubitStatus stat;
  location_list.reset();
  if (closest_location_list) closest_location_list->reset();
  if (unit_normal_list) unit_normal_list->reset();
  if (curvature1_list) curvature1_list->reset();
  if (curvature2_list) curvature2_list->reset();
  for (int i=0; i<location_list.size(); i++)
  {
    location = location_list.get_and_step();
    if (closest_location_list == NULL)
      closest_location = NULL;
    else
      closest_location = closest_location_list->get_and_step();
    if (unit_normal_list == NULL)
      unit_normal = NULL;
    else
      unit_normal = unit_normal_list->get_and_step();
    if (curvature1_list == NULL)
      curvature1 = NULL;
    else
      curvature1 = curvature1_list->get_and_step();
    if (curvature2_list == NULL)
      curvature2 = NULL;
    else
      curvature2 = curvature2_list->get_and_step();
    stat = closest_point( *location, closest_location, unit_normal, curvature1, curvature2 );
    if (stat != CUBIT_SUCCESS)
      return stat;
  }
  return CUBIT_SUCCESS;
}
void Surface::closest_points_trimmed ( std::vector< CubitVector > &  from_points_list,
std::vector< CubitVector > &  points_on_surface_list 
) [virtual]

Definition at line 96 of file Surface.cpp.

{
  CubitVector from_point;
  CubitVector point_on_surface;  
  for (unsigned int i=0; i<from_points_list.size(); i++)
  {
    from_point = from_points_list[i];    
    closest_point_trimmed( from_point, point_on_surface );
    points_on_surface_list.push_back( point_on_surface );
  }
}
virtual CubitStatus Surface::evaluate ( double  u,
double  v,
CubitVector position,
CubitVector normal,
CubitVector curvature1,
CubitVector curvature2 
) [pure virtual]
CubitStatus Surface::evaluate ( double  u,
double  v,
CubitVector pos,
CubitVector  deriv1[2],
CubitVector  deriv2[3] 
) [virtual]

Definition at line 132 of file Surface.cpp.

{
  PRINT_ERROR("evaluate is not implemented.");
  return CUBIT_FAILURE;
}
virtual GeometryType Surface::geometry_type ( ) [inline, virtual]

Implements GeometryEntity.

Reimplemented in OCCSurface, FacetSurface, CompositeSurface, PartitionSurface, and SubSurface.

Definition at line 368 of file Surface.hpp.

virtual CubitStatus Surface::get_cone_params ( CubitVector center,
CubitVector normal,
CubitVector major_axis,
double &  radius_ratio,
double &  sine_angle,
double &  cos_angle 
) const [pure virtual]
virtual CubitStatus Surface::get_nurb_params ( bool &  rational,
int &  degree_u,
int &  degree_v,
int &  num_cntrl_pts_u,
int &  num_cntrl_pts_v,
DLIList< CubitVector > &  cntrl_pts,
DLIList< double > &  weights,
DLIList< double > &  u_knots,
DLIList< double > &  v_knots 
) const [pure virtual]
virtual CubitBoolean Surface::get_param_range_U ( double &  lower_bound,
double &  upper_bound 
) [pure virtual]
virtual CubitBoolean Surface::get_param_range_V ( double &  lower_bound,
double &  upper_bound 
) [pure virtual]
virtual CubitStatus Surface::get_point_normal ( CubitVector point,
CubitVector normal 
) [pure virtual]
virtual CubitStatus Surface::get_projected_distance_on_surface ( CubitVector pos1,
CubitVector pos2,
double &  distance 
) [pure virtual]
virtual CubitSense Surface::get_shell_sense ( ShellSM shell_ptr) const [pure virtual]
virtual CubitStatus Surface::get_sphere_params ( CubitVector center,
double &  radius 
) const [pure virtual]
virtual CubitStatus Surface::get_torus_params ( CubitVector center,
CubitVector normal,
double &  major_radius,
double &  minor_radius 
) const [pure virtual]
virtual CubitSense Surface::get_uv_sense ( ) [inline, virtual]

Definition at line 358 of file Surface.hpp.

      {
        return CUBIT_UNKNOWN;
      }
virtual CubitBoolean Surface::is_closed_in_U ( ) [inline, virtual]

Reimplemented in FacetSurface, OCCSurface, CompositeSurface, PartitionSurface, and SubSurface.

Definition at line 268 of file Surface.hpp.

{return CUBIT_FALSE;}
virtual CubitBoolean Surface::is_closed_in_V ( ) [inline, virtual]

Reimplemented in FacetSurface, OCCSurface, CompositeSurface, PartitionSurface, and SubSurface.

Definition at line 269 of file Surface.hpp.

{return CUBIT_FALSE;}
virtual GeometryType Surface::is_cylindrical ( ) [inline, virtual]

Definition at line 373 of file Surface.hpp.

virtual CubitBoolean Surface::is_periodic_in_U ( double &  period) [pure virtual]
virtual CubitBoolean Surface::is_periodic_in_V ( double &  period) [pure virtual]
virtual CubitBoolean Surface::is_position_on ( CubitVector test_position) [pure virtual]
virtual CubitBoolean Surface::is_singular_in_U ( double  u_param) [pure virtual]
virtual CubitBoolean Surface::is_singular_in_V ( double  v_param) [pure virtual]
virtual void Surface::param_dir ( CubitVector ,
CubitVector ,
double &  ,
double &   
) [inline, virtual]

Definition at line 74 of file Surface.hpp.

                                             {}
virtual CubitPointContainment Surface::point_containment ( double  u,
double  v 
) [pure virtual]
virtual CubitVector Surface::position_from_u_v ( double  u,
double  v 
) [pure virtual]
virtual CubitStatus Surface::principal_curvatures ( CubitVector const &  location,
double &  curvature_1,
double &  curvature_2,
CubitVector closest_location = NULL 
) [pure virtual]
virtual CubitStatus Surface::u_v_from_position ( CubitVector const &  location,
double &  u,
double &  v,
CubitVector closest_location = NULL 
) [pure virtual]
virtual CubitStatus Surface::uv_derivitives ( double  u_param,
double  v_param,
CubitVector du,
CubitVector dv 
) [pure virtual]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines