@@ -242,7 +242,7 @@ void DiffuseParticleSimulation::setMaxNumDiffuseParticles(int n) {
242
242
FLUIDSIM_ASSERT (n >= 0 );
243
243
_maxNumDiffuseParticles = n;
244
244
if (n == 0 ) {
245
- _maxNumDiffuseParticles = std::numeric_limits< unsigned int >:: max () ;
245
+ _maxNumDiffuseParticles = _maxNumDiffuseParticlesLimit ;
246
246
}
247
247
}
248
248
@@ -759,6 +759,7 @@ void DiffuseParticleSimulation::getSprayParticleFileDataWWP(std::vector<char> &d
759
759
std::vector<vmath::vec3> *particlePositions;
760
760
std::vector<unsigned char > *particleIds;
761
761
std::vector<char > *particleTypes;
762
+
762
763
_diffuseParticles.getAttributeValues (" POSITION" , particlePositions);
763
764
_diffuseParticles.getAttributeValues (" ID" , particleIds);
764
765
_diffuseParticles.getAttributeValues (" TYPE" , particleTypes);
@@ -2896,13 +2897,14 @@ void DiffuseParticleSimulation::_getDiffuseParticleFileDataWWP(std::vector<vmath
2896
2897
std::vector<char > &data) {
2897
2898
FLUIDSIM_ASSERT (positions.size () == ids.size ())
2898
2899
2899
- std::vector<int > idcounts (_diffuseParticleIDLimit, 0 );
2900
+ std::vector<unsigned int > idcounts (_diffuseParticleIDLimit, 0 );
2900
2901
for (size_t i = 0 ; i < ids.size (); i++) {
2901
2902
idcounts[(int )ids[i]]++;
2902
2903
}
2903
2904
2904
- std::vector<int > idBinIndices (_diffuseParticleIDLimit, 0 );
2905
- std::vector<int > idData (_diffuseParticleIDLimit, 0 );
2905
+ std::vector<unsigned int > idBinIndices (_diffuseParticleIDLimit, 0 );
2906
+ std::vector<unsigned int > idData (_diffuseParticleIDLimit, 0 );
2907
+
2906
2908
int currentBinIndex = 0 ;
2907
2909
for (size_t i = 0 ; i < idcounts.size (); i++) {
2908
2910
idBinIndices[i] = currentBinIndex;
@@ -2916,16 +2918,16 @@ void DiffuseParticleSimulation::_getDiffuseParticleFileDataWWP(std::vector<vmath
2916
2918
idBinIndices[ids[i]]++;
2917
2919
}
2918
2920
2919
- int idDataSize = (int )idData.size () * sizeof (int );
2920
- int numVertices = (int )positions.size ();
2921
- int vertexDataSize = 3 * numVertices * sizeof (float );
2922
- int dataSize = idDataSize + vertexDataSize;
2921
+ unsigned int idDataSize = (unsigned int )idData.size () * sizeof (int );
2922
+ unsigned int numVertices = (unsigned int )positions.size ();
2923
+ unsigned int vertexDataSize = 3 * numVertices * sizeof (float );
2924
+ unsigned int dataSize = idDataSize + vertexDataSize;
2923
2925
2924
2926
data.clear ();
2925
2927
data.resize (dataSize);
2926
2928
data.shrink_to_fit ();
2927
2929
2928
- int byteOffset = 0 ;
2930
+ unsigned int byteOffset = 0 ;
2929
2931
std::memcpy (data.data () + byteOffset, (char *)idData.data (), idDataSize);
2930
2932
byteOffset += idDataSize;
2931
2933
@@ -2938,36 +2940,36 @@ void DiffuseParticleSimulation::_getDiffuseParticleFileDataWWI(std::vector<int>
2938
2940
std::vector<char > &data) {
2939
2941
FLUIDSIM_ASSERT (intvalues.size () == ids.size ())
2940
2942
2941
- std::vector<int > idcounts (_diffuseParticleIDLimit, 0 );
2943
+ std::vector<unsigned int > idcounts (_diffuseParticleIDLimit, 0 );
2942
2944
for (size_t i = 0 ; i < ids.size (); i++) {
2943
- idcounts[(int )ids[i]]++;
2945
+ idcounts[(unsigned int )ids[i]]++;
2944
2946
}
2945
2947
2946
- std::vector<int > idBinIndices (_diffuseParticleIDLimit, 0 );
2947
- std::vector<int > idData (_diffuseParticleIDLimit, 0 );
2948
+ std::vector<unsigned int > idBinIndices (_diffuseParticleIDLimit, 0 );
2949
+ std::vector<unsigned int > idData (_diffuseParticleIDLimit, 0 );
2948
2950
int currentBinIndex = 0 ;
2949
2951
for (size_t i = 0 ; i < idcounts.size (); i++) {
2950
2952
idBinIndices[i] = currentBinIndex;
2951
2953
currentBinIndex += idcounts[i];
2952
2954
idData[i] = currentBinIndex - 1 ;
2953
2955
}
2954
2956
2955
- std::vector<int > intData (intvalues.size ());
2957
+ std::vector<unsigned int > intData (intvalues.size ());
2956
2958
for (size_t i = 0 ; i < intvalues.size (); i++) {
2957
2959
intData[idBinIndices[ids[i]]] = intvalues[i];
2958
2960
idBinIndices[ids[i]]++;
2959
2961
}
2960
2962
2961
- int idDataSize = (int )idData.size () * sizeof (int );
2962
- int numVertices = (int )intvalues.size ();
2963
- int intDataSize = numVertices * sizeof (int );
2964
- int dataSize = idDataSize + intDataSize;
2963
+ unsigned int idDataSize = (unsigned int )idData.size () * sizeof (int );
2964
+ unsigned int numVertices = (unsigned int )intvalues.size ();
2965
+ unsigned int intDataSize = numVertices * sizeof (int );
2966
+ unsigned int dataSize = idDataSize + intDataSize;
2965
2967
2966
2968
data.clear ();
2967
2969
data.resize (dataSize);
2968
2970
data.shrink_to_fit ();
2969
2971
2970
- int byteOffset = 0 ;
2972
+ unsigned int byteOffset = 0 ;
2971
2973
std::memcpy (data.data () + byteOffset, (char *)idData.data (), idDataSize);
2972
2974
byteOffset += idDataSize;
2973
2975
@@ -2980,13 +2982,13 @@ void DiffuseParticleSimulation::_getDiffuseParticleFileDataWWF(std::vector<float
2980
2982
std::vector<char > &data) {
2981
2983
FLUIDSIM_ASSERT (floatvalues.size () == ids.size ())
2982
2984
2983
- std::vector<int > idcounts (_diffuseParticleIDLimit, 0 );
2985
+ std::vector<unsigned int > idcounts (_diffuseParticleIDLimit, 0 );
2984
2986
for (size_t i = 0 ; i < ids.size (); i++) {
2985
- idcounts[(int )ids[i]]++;
2987
+ idcounts[(unsigned int )ids[i]]++;
2986
2988
}
2987
2989
2988
- std::vector<int > idBinIndices (_diffuseParticleIDLimit, 0 );
2989
- std::vector<int > idData (_diffuseParticleIDLimit, 0 );
2990
+ std::vector<unsigned int > idBinIndices (_diffuseParticleIDLimit, 0 );
2991
+ std::vector<unsigned int > idData (_diffuseParticleIDLimit, 0 );
2990
2992
int currentBinIndex = 0 ;
2991
2993
for (size_t i = 0 ; i < idcounts.size (); i++) {
2992
2994
idBinIndices[i] = currentBinIndex;
@@ -3000,16 +3002,16 @@ void DiffuseParticleSimulation::_getDiffuseParticleFileDataWWF(std::vector<float
3000
3002
idBinIndices[ids[i]]++;
3001
3003
}
3002
3004
3003
- int idDataSize = (int )idData.size () * sizeof (int );
3004
- int numVertices = (int )floatvalues.size ();
3005
- int intDataSize = numVertices * sizeof (int );
3006
- int dataSize = idDataSize + intDataSize;
3005
+ unsigned int idDataSize = (int )idData.size () * sizeof (int );
3006
+ unsigned int numVertices = (int )floatvalues.size ();
3007
+ unsigned int intDataSize = numVertices * sizeof (int );
3008
+ unsigned int dataSize = idDataSize + intDataSize;
3007
3009
3008
3010
data.clear ();
3009
3011
data.resize (dataSize);
3010
3012
data.shrink_to_fit ();
3011
3013
3012
- int byteOffset = 0 ;
3014
+ unsigned int byteOffset = 0 ;
3013
3015
std::memcpy (data.data () + byteOffset, (char *)idData.data (), idDataSize);
3014
3016
byteOffset += idDataSize;
3015
3017
0 commit comments