LCOV - code coverage report
Current view: top level - util/cgm - GMem.hpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 8 10 80.0 %
Date: 2020-06-30 00:58:45 Functions: 4 5 80.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : #ifndef GMEM_HPP
       2                 :            : #define GMEM_HPP
       3                 :            : 
       4                 :            : // Include for CubitBoolean
       5                 :            : #include "CubitDefines.h"
       6                 :            : #include "CGMUtilConfigure.h"
       7                 :            : 
       8                 :            : class CubitTransformMatrix;
       9                 :            : 
      10                 :            : //- A point in 3D space.
      11                 :            : struct GPoint
      12                 :            : {
      13                 :            :    float x;
      14                 :            :    float y;
      15                 :            :    float z;
      16                 :            : };
      17                 :            : 
      18                 :            : typedef struct
      19                 :            : {
      20                 :            :    GPoint at;
      21                 :            :    GPoint from;
      22                 :            :    GPoint up;
      23                 :            :    float width;
      24                 :            :    float height;
      25                 :            :    CubitBoolean isCentered;
      26                 :            : } CubitViewParam;
      27                 :            : 
      28                 :            : class CUBIT_UTIL_EXPORT GMem
      29                 :            : {
      30                 :            : private:
      31                 :            :      // These are made private to make them essentially read-only,
      32                 :            :      // although you still have direct access to the array elements.
      33                 :            :    GPoint *pointList; // x, y, z vector
      34                 :            :    int ptsSize;   // size of points vector
      35                 :            :    int fListSize; // size of facetList vector
      36                 :            :    int *facetList; // number of points in face, indices of points in face
      37                 :            :    CubitBoolean pointsConsolidated;
      38                 :            :    
      39                 :            :    void consolidate_few_points( double tolerance );
      40                 :            :    void consolidate_many_points( double tolerance );
      41                 :            :    
      42                 :            : public:
      43                 :            :    int pointListCount;  // number valid points stored in points vector
      44                 :            :    int fListCount;      // number valid integers stored in facetList.
      45                 :            :     // If you always use triangles, this will be 4 times the number of polygons.
      46                 :            :    
      47                 :            :      // Constructor/Destructor take care of dynamic memory.
      48                 :            :    GMem();
      49                 :            :    ~GMem();
      50                 :            :    
      51                 :            :      // These are high-level functions that don't require you
      52                 :            :      // to know exactly what the internals are
      53                 :            :    void allocate_tri(int num_tri);
      54                 :            :    void allocate_polylines(int num_lines);
      55                 :            :    void allocate_more_polylines(int num_lines);
      56                 :            :    void clean_out();
      57                 :            :    
      58                 :            :      // The rest give you a little more direct control over the internals
      59                 :            :    
      60                 :            :      // Whether points at the same coords have been merged
      61                 :          0 :    void points_consolidated(CubitBoolean yes_no)
      62                 :          0 :       { pointsConsolidated = yes_no; }
      63                 :            :    CubitBoolean points_consolidated()
      64                 :            :       { return pointsConsolidated; }
      65                 :            :    void consolidate_points( double tolerance );
      66                 :            :    
      67                 :            :      // Access to the arrays without letting the client
      68                 :            :      // change the pointer directly.
      69                 :        348 :    GPoint* point_list()
      70                 :        348 :       { return pointList; }
      71                 :         72 :    int* facet_list()
      72                 :         72 :       { return facetList; }
      73                 :            :    
      74                 :            :      // Swap one array for another.  Requiring a function call
      75                 :            :      // instead of direct access makes it more likely that
      76                 :            :      // dynamic memory and count values will be handled correctly.
      77                 :            :      //    Important!!!!!!!!!!!
      78                 :            :      // The array passed in must have been allocated by 'new',
      79                 :            :      // and must not be deleted outside of GMem!!!!!
      80                 :            :    void replace_point_list(GPoint new_point_list[], int num_valid_points,
      81                 :            :                            int array_size);
      82                 :            :    void replace_facet_list(int new_facet_list[], int num_valid_entries,
      83                 :            :                            int array_size);
      84                 :            :    
      85                 :            :      // Read only access to the array sizes
      86                 :         19 :    int point_list_size()
      87                 :         19 :       { return ptsSize; }
      88                 :         19 :    int facet_list_size()
      89                 :         19 :       { return fListSize; }
      90                 :            : 
      91                 :            :      // Copy constructor and operator=
      92                 :            :    GMem(const GMem& from);
      93                 :            :    GMem& operator=(const GMem& from);
      94                 :            : 
      95                 :            :      // transformation functions - transform the display data
      96                 :            :    void transform(CubitTransformMatrix &transform);
      97                 :            : };
      98                 :            : 
      99                 :            : #endif
     100                 :            : 

Generated by: LCOV version 1.11