Ignore:
Timestamp:
05/08/07 13:04:43 (17 years ago)
Author:
mattausch
Message:

cleaned up project files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.h

    r2347 r2353  
    11281128        int CompressObjects(VspLeaf *leaf); 
    11291129 
     1130        int TraverseRayPacket(RayPacket &rp, const bool useMailboxing); 
    11301131 
    11311132#ifdef USE_SSE 
    11321133        struct PacketTraversalData 
    11331134        { 
     1135                PacketTraversalData () {} 
     1136         
     1137                PacketTraversalData (VspNode *n,  
     1138                                         const __m128 &px, const __m128 &py, const __m128 &pz,  
     1139                                                         const __m128 &maxt, 
     1140                                                         const __m128 &mask): 
     1141                mNode(n),  
     1142                mExitPointX4(px), mExitPointY4(py), mExitPointZ4(pz), 
     1143                mMaxT4(maxt), 
     1144                mMask4(mask) 
     1145                {} 
     1146 
    11341147                VspNode *mNode; 
    11351148 
    1136                 union { float mExitPointX[4]; __m128 mExitPointX4; }; 
    1137                 union { float mExitPointY[4]; __m128 mExitPointY4; }; 
    1138                 union { float mExitPointZ[4]; __m128 mExitPointZ4; }; 
    1139  
    1140                 union { float mMaxT[4]; __m128 mMaxT4; }; 
    1141                 union { float mMask[4]; __m128 mMask4; }; 
    1142  
    1143                 PacketTraversalData () {} 
    1144                 PacketTraversalData (VspNode *n,  
    1145                         const __m128 &px, const __m128 &py, const __m128 &pz,  
    1146                         const __m128 &maxt, 
    1147                         const __m128 &mask): 
    1148                 mNode(n),  
    1149                         mExitPointX4(px), mExitPointY4(py), mExitPointZ4(pz), 
    1150                         mMaxT4(maxt), 
    1151                         mMask4(mask) 
    1152                 {} 
     1149                union { __m128 mExitPointX4; float mExitPointX[4]; }; 
     1150                union { __m128 mExitPointY4; float mExitPointY[4]; }; 
     1151                union { __m128 mExitPointZ4; float mExitPointZ[4]; }; 
     1152 
     1153                union { __m128 mMaxT4; float mMaxT[4]; }; 
     1154                union { __m128 mMask4; float mMask[4]; }; 
    11531155        }; 
    11541156 
    11551157 
    1156         int TraverseRayPacket(RayPacket &rp, const bool useMailboxing); 
     1158        struct __declspec(align(16)) PacketTraversalStack 
     1159        { 
     1160                // for performance 
     1161                friend class VspTree; 
     1162 
     1163        public: 
     1164                PacketTraversalStack(const int depth): 
     1165                mStackPtr(0),  
     1166                //mDepth(depth) 
     1167                mDepth(1000) 
     1168                { 
     1169                        //mData = new PacketTraversalData[mDepth]; 
     1170                } 
     1171 
     1172                ~PacketTraversalStack() 
     1173                { 
     1174                        //delete [] mData; 
     1175                } 
     1176                 
     1177                //PacketTraversalStack() {} 
     1178 
     1179                void Pop() {-- mStackPtr;} 
     1180                const PacketTraversalData &Top() const { return mData[mStackPtr - 1];} 
     1181                 
     1182                void Push(const PacketTraversalData &tData)  
     1183                { 
     1184                        // note: faster with direct assignments 
     1185                        mData[mStackPtr ++] = tData; 
     1186                        //if (mStackPtr == mDepth) std::cerr << "this can never happen!!" << std::endl; 
     1187                } 
     1188 
     1189                bool Empty() const {return mStackPtr <= 0;} 
     1190 
     1191        protected: 
     1192 
     1193                // static array to avoid using operator new 
     1194                //PacketTraversalData *mData; 
     1195                PacketTraversalData mData[1000]; 
     1196 
     1197                int mStackPtr; 
     1198                int mDepth; 
     1199 
     1200        }; 
    11571201 
    11581202#endif 
Note: See TracChangeset for help on using the changeset viewer.