LCOV - code coverage report
Current view: top level - geom/virtual/cgm - SubCurve.hpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 0 2 0.0 %
Date: 2020-06-30 00:58:45 Functions: 0 1 0.0 %
Branches: 0 2 0.0 %

           Branch data     Line data    Source code
       1                 :            : //-------------------------------------------------------------------------
       2                 :            : // Filename      : SubCurve.hpp
       3                 :            : //
       4                 :            : // Purpose       : 
       5                 :            : //
       6                 :            : // Special Notes : 
       7                 :            : //
       8                 :            : // Creator       : Jason Kraftcheck
       9                 :            : //
      10                 :            : // Creation Date : 04/10/02
      11                 :            : //-------------------------------------------------------------------------
      12                 :            : 
      13                 :            : #ifndef SUB_CURVE_HPP
      14                 :            : #define SUB_CURVE_HPP
      15                 :            : 
      16                 :            : #include "PartitionCurve.hpp"
      17                 :            : 
      18                 :            : class SubCurve : public PartitionCurve
      19                 :            : {
      20                 :            : 
      21                 :            : public:
      22                 :            : 
      23                 :            :   PartitionCurve* split( double param );
      24                 :            :   CubitStatus combine( PartitionCurve* dead_curve );
      25                 :            :   
      26                 :            : 
      27                 :            :   SubCurve( Curve* curve_ptr );
      28                 :            :   SubCurve( SubCurve* curve_ptr, double start_param );
      29                 :            :   
      30                 :            :   ~SubCurve();
      31                 :            :   
      32                 :            :   Curve* real_curve() const;
      33                 :            :   
      34                 :            :   int num_partitions() const;
      35                 :            :   void get_all_partitions( DLIList<TopologyBridge*>& curves ) const;
      36                 :            :   
      37                 :            :   CubitStatus get_graphics( GMem& result, 
      38                 :            :                             double angle_tolerance = 0,
      39                 :            :                             double distance_tolernace = 0,
      40                 :            :                             double max_edge_length = 0);
      41                 :            : 
      42                 :            :   void reverse_sense();
      43                 :            : 
      44                 :            :   virtual CubitStatus save(CubitSimpleAttrib&);
      45                 :            : 
      46                 :            :     /*** Methods from GeometryEntity ***/
      47                 :            : 
      48                 :            :   CubitBox bounding_box() const;
      49                 :            :   double measure();
      50                 :            :   GeometryType geometry_type();
      51                 :            : 
      52                 :            :     /*** Methods from Curve ***/
      53                 :            : 
      54                 :            :   CubitStatus closest_point( CubitVector const& from, CubitVector& closest,
      55                 :            :                              CubitVector* tangent = 0,  CubitVector* curvature = 0,
      56                 :            :                              double* param = 0 );
      57                 :            :   CubitPointContainment point_containment( const CubitVector& point );
      58                 :            :   CubitBoolean is_position_on( const CubitVector& position );
      59                 :            :   CubitBoolean G1_discontinuous( double u, CubitVector* minus_tangent = 0,
      60                 :            :                                            CubitVector* plus_tangent = 0 );
      61                 :            :   CubitStatus get_interior_extrema( DLIList<CubitVector*>& points, CubitSense& sense );
      62                 :            :   CubitStatus get_center_radius( CubitVector& center, double& radius );
      63                 :            : 
      64                 :            :   CubitBoolean get_param_range( double& lower, double& upper );
      65                 :            :   double start_param();
      66                 :            :   double end_param();
      67                 :            :   CubitBoolean is_periodic( double& period );
      68                 :            :   
      69                 :            :   double length_from_u( double u1, double u2 );
      70                 :            :   double u_from_position( const CubitVector& position );
      71                 :            :   CubitStatus position_from_u( double u, CubitVector& result );
      72                 :            :   double u_from_arc_length( double root, double length );
      73                 :            :   
      74                 :            :   //R CubitStatus
      75                 :            :   //O- true or false if spline is rational or not.
      76                 :            :   //O- the degree of this spline
      77                 :            :   //O- the control points
      78                 :            :   //O- If rational, weight for each control point
      79                 :            :   //O- whether underlying spline is reversed
      80                 :            :   virtual CubitStatus get_spline_params( bool &rational,
      81                 :            :                                          int &degree,
      82                 :            :                                          DLIList<CubitVector> &cntrl_pts,
      83                 :            :                                          DLIList<double> &cntrl_pt_weights,
      84                 :            :                                          DLIList<double> &knots,
      85                 :            :                                          bool &spline_is_reversed
      86                 :            :                                        ) const;
      87                 :            :   //R CubitStatus
      88                 :            :   //O- center - ellipse center point
      89                 :            :   //O- normal - normal of the plane of the ellipse
      90                 :            :   //O- major_axis - major axis of the ellipse
      91                 :            :   //O- radius_ratio - ratio of the length of the major to minor axis.
      92                 :            :   virtual CubitStatus get_ellipse_params( CubitVector &center,
      93                 :            :                                           CubitVector &normal,
      94                 :            :                                           CubitVector &major_axis,
      95                 :            :                                           double &radius_ratio ) const;
      96                 :            : private:
      97                 :            : 
      98                 :            :   void fixup_periodic_param( double& param ) const;
      99                 :            :   CubitBoolean get_ordered_param_range( double& lower, double& upper );
     100                 :            : 
     101                 :            :   double startParam, endParam;
     102                 :            : };
     103                 :            : 
     104                 :          0 : inline Curve* SubCurve::real_curve() const
     105         [ #  # ]:          0 :   { return dynamic_cast<Curve*>(partitioned_entity()); }
     106                 :            : 
     107                 :            : 
     108                 :            : #endif

Generated by: LCOV version 1.11