40
40
41
41
#include " fcl/geometry/bvh/BVH_model.h"
42
42
#include < new>
43
+ #include < algorithm>
43
44
44
45
namespace fcl
45
46
{
@@ -92,23 +93,23 @@ BVHModel<BV>::BVHModel(const BVHModel<BV>& other)
92
93
if (other.vertices )
93
94
{
94
95
vertices = new Vector3<S>[num_vertices];
95
- memcpy ( vertices, other.vertices , sizeof (Vector3<S>) * num_vertices);
96
+ std::copy (other. vertices , other.vertices + num_vertices, vertices );
96
97
}
97
98
else
98
99
vertices = nullptr ;
99
100
100
101
if (other.tri_indices )
101
102
{
102
103
tri_indices = new Triangle[num_tris];
103
- memcpy ( tri_indices, other.tri_indices , sizeof (Triangle) * num_tris);
104
+ std::copy (other. tri_indices , other.tri_indices + num_tris, tri_indices );
104
105
}
105
106
else
106
107
tri_indices = nullptr ;
107
108
108
109
if (other.prev_vertices )
109
110
{
110
111
prev_vertices = new Vector3<S>[num_vertices];
111
- memcpy ( prev_vertices, other.prev_vertices , sizeof (Vector3<S>) * num_vertices);
112
+ std::copy (other. prev_vertices , other.prev_vertices + num_vertices, prev_vertices );
112
113
}
113
114
else
114
115
prev_vertices = nullptr ;
@@ -129,7 +130,7 @@ BVHModel<BV>::BVHModel(const BVHModel<BV>& other)
129
130
}
130
131
131
132
primitive_indices = new unsigned int [num_primitives];
132
- memcpy ( primitive_indices, other.primitive_indices , sizeof ( unsigned int ) * num_primitives);
133
+ std::copy (other. primitive_indices , other.primitive_indices + num_primitives, primitive_indices );
133
134
}
134
135
else
135
136
primitive_indices = nullptr ;
@@ -138,7 +139,7 @@ BVHModel<BV>::BVHModel(const BVHModel<BV>& other)
138
139
if (other.bvs )
139
140
{
140
141
bvs = new BVNode<BV>[num_bvs];
141
- memcpy ( bvs, other.bvs , sizeof (BVNode<BV>) * num_bvs);
142
+ std::copy (other. bvs , other.bvs + num_bvs, bvs );
142
143
}
143
144
else
144
145
bvs = nullptr ;
@@ -270,7 +271,7 @@ int BVHModel<BV>::addVertex(const Vector3<S>& p)
270
271
return BVH_ERR_MODEL_OUT_OF_MEMORY;
271
272
}
272
273
273
- memcpy (temp , vertices, sizeof (Vector3<S>) * num_vertices);
274
+ std::copy (vertices , vertices + num_vertices, temp );
274
275
delete [] vertices;
275
276
vertices = temp;
276
277
num_vertices_allocated *= 2 ;
@@ -301,7 +302,7 @@ int BVHModel<BV>::addTriangle(const Vector3<S>& p1, const Vector3<S>& p2, const
301
302
return BVH_ERR_MODEL_OUT_OF_MEMORY;
302
303
}
303
304
304
- memcpy (temp , vertices, sizeof (Vector3<S>) * num_vertices);
305
+ std::copy (vertices , vertices + num_vertices, temp );
305
306
delete [] vertices;
306
307
vertices = temp;
307
308
num_vertices_allocated = num_vertices_allocated * 2 + 2 ;
@@ -329,7 +330,7 @@ int BVHModel<BV>::addTriangle(const Vector3<S>& p1, const Vector3<S>& p2, const
329
330
return BVH_ERR_MODEL_OUT_OF_MEMORY;
330
331
}
331
332
332
- memcpy (temp , tri_indices, sizeof (Triangle) * num_tris);
333
+ std::copy (tri_indices , tri_indices + num_tris, temp );
333
334
delete [] tri_indices;
334
335
tri_indices = temp;
335
336
num_tris_allocated *= 2 ;
@@ -362,7 +363,7 @@ int BVHModel<BV>::addSubModel(const std::vector<Vector3<S>>& ps)
362
363
return BVH_ERR_MODEL_OUT_OF_MEMORY;
363
364
}
364
365
365
- memcpy (temp , vertices, sizeof (Vector3<S>) * num_vertices);
366
+ std::copy (vertices , vertices + num_vertices, temp );
366
367
delete [] vertices;
367
368
vertices = temp;
368
369
num_vertices_allocated = num_vertices_allocated * 2 + num_vertices_to_add - 1 ;
@@ -398,7 +399,7 @@ int BVHModel<BV>::addSubModel(const std::vector<Vector3<S>>& ps, const std::vect
398
399
return BVH_ERR_MODEL_OUT_OF_MEMORY;
399
400
}
400
401
401
- memcpy (temp , vertices, sizeof (Vector3<S>) * num_vertices);
402
+ std::copy (vertices , vertices + num_vertices, temp );
402
403
delete [] vertices;
403
404
vertices = temp;
404
405
num_vertices_allocated = num_vertices_allocated * 2 + num_vertices_to_add - 1 ;
@@ -428,7 +429,7 @@ int BVHModel<BV>::addSubModel(const std::vector<Vector3<S>>& ps, const std::vect
428
429
return BVH_ERR_MODEL_OUT_OF_MEMORY;
429
430
}
430
431
431
- memcpy (temp , tri_indices, sizeof (Triangle) * num_tris);
432
+ std::copy (tri_indices , tri_indices + num_tris, temp );
432
433
delete [] tri_indices;
433
434
tri_indices = temp;
434
435
num_tris_allocated = num_tris_allocated * 2 + num_tris_to_add - 1 ;
@@ -468,7 +469,7 @@ int BVHModel<BV>::endModel()
468
469
std::cerr << " BVH Error! Out of memory for tri_indices array in endModel() call!" << std::endl;
469
470
return BVH_ERR_MODEL_OUT_OF_MEMORY;
470
471
}
471
- memcpy (new_tris , tri_indices, sizeof (Triangle) * num_tris);
472
+ std::copy (tri_indices , tri_indices + num_tris, new_tris );
472
473
delete [] tri_indices;
473
474
tri_indices = new_tris;
474
475
num_tris_allocated = num_tris;
@@ -482,7 +483,7 @@ int BVHModel<BV>::endModel()
482
483
std::cerr << " BVH Error! Out of memory for vertices array in endModel() call!" << std::endl;
483
484
return BVH_ERR_MODEL_OUT_OF_MEMORY;
484
485
}
485
- memcpy (new_vertices , vertices, sizeof (Vector3<S>) * num_vertices);
486
+ std::copy (vertices , vertices + num_vertices, new_vertices );
486
487
delete [] vertices;
487
488
vertices = new_vertices;
488
489
num_vertices_allocated = num_vertices;
0 commit comments