Ignore:
Timestamp:
Mar 7, 2012 12:21:30 PM (12 years ago)
Author:
ldelgass
Message:

Const correctness fixes, pass vector/matrix objects by reference, various
formatting and style cleanups, don't spam syslog and uncomment openlog() call.
Still needs to be compiled with -DWANT_TRACE to get tracing, but now trace
output will be output to file in /tmp.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/nanovis/BucketSort.h

    r2798 r2822  
    11/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
    2 #ifndef __BUCKETSORT_H_
    3 #define __BUCKETSORT_H_
     2#ifndef BUCKETSORT_H
     3#define BUCKETSORT_H
    44
    55#include <vector>
     
    1313class ClusterList {
    1414public :
    15         Cluster* data;
    16         ClusterList* next;
     15    Cluster* data;
     16    ClusterList* next;
    1717public :
    18         ClusterList(Cluster* d, ClusterList* n)
    19                 : data(d), next(n)
    20         {}
     18    ClusterList(Cluster *d, ClusterList *n) :
     19        data(d), next(n)
     20    {}
    2121
    22         ClusterList()
    23                 : data(0), next(0)
    24         {}
     22    ClusterList() :
     23        data(0), next(0)
     24    {}
    2525
    26         ~ClusterList()
    27         {
    28                 //if (next) delete next;
    29         }
     26    ~ClusterList()
     27    {
     28        //if (next) delete next;
     29    }
    3030};
    3131
    3232class BucketSort {
    33         ClusterList** _buffer;
    34         int _size;
    35         int _count;
     33    ClusterList **_buffer;
     34    int _size;
     35    int _count;
    3636
    37         int _memChuckSize;
    38         bool _memChunckUsedFlag;
    39         ClusterList* _memChunck;
    40        
    41         float _invMaxLength;
    42 private :
    43         //void _sort(Cluster* cluster, const Matrix4& cameraMat, int level);
    44         void _sort(Cluster* cluster, const Mat4x4& cameraMat, int level);
    45 public :
    46         BucketSort(int maxSize)
    47         {
    48                 _size = maxSize;
    49                 _buffer = new ClusterList*[maxSize];
    50                 memset(_buffer, 0, _size * sizeof(ClusterList*));
     37    int _memChuckSize;
     38    bool _memChunckUsedFlag;
     39    ClusterList *_memChunck;
    5140
    52                 _memChuckSize = 1000000;
    53                 _memChunck = new ClusterList[_memChuckSize];
     41    float _invMaxLength;
     42private:
     43    void _sort(Cluster *cluster, const Mat4x4& cameraMat, int level);
     44public:
     45    BucketSort(int maxSize)
     46    {
     47        _size = maxSize;
     48        _buffer = new ClusterList*[maxSize];
     49        memset(_buffer, 0, _size * sizeof(ClusterList*));
    5450
    55                 _invMaxLength = 1.0f / 4.0f;
    56         }
     51        _memChuckSize = 1000000;
     52        _memChunck = new ClusterList[_memChuckSize];
    5753
    58         ~BucketSort()
    59         {
    60                 delete [] _buffer;
    61                 delete [] _memChunck;
    62         }
     54        _invMaxLength = 1.0f / 4.0f;
     55    }
    6356
    64         int getSize() const { return _size; }
    65         int getSortedItemCount() const { return _count; }
    66         void init();
    67         //void sort(ClusterAccel* cluster, const Matrix4& cameraMat, float maxLength);
    68         //void sort(ClusterAccel* cluster, const Matrix4& cameraMat, int level);
    69         void sort(ClusterAccel* cluster, const Mat4x4& cameraMat, int level);
    70         void addBucket(Cluster* cluster, float ratio);
    71         ClusterList** getBucket() { return _buffer; }
     57    ~BucketSort()
     58    {
     59        delete [] _buffer;
     60        delete [] _memChunck;
     61    }
     62
     63    int getSize() const
     64    { return _size; }
     65
     66    int getSortedItemCount() const
     67    { return _count; }
     68
     69    void init();
     70
     71    void sort(ClusterAccel* cluster, const Mat4x4& cameraMat, int level);
     72
     73    void addBucket(Cluster* cluster, float ratio);
     74
     75    ClusterList **getBucket()
     76    { return _buffer; }
    7277};
    7378
Note: See TracChangeset for help on using the changeset viewer.