19
19
NUX_SAFE_DELETE_ARRAY(_index_data);
22
bool MeshData::Allocate(int num_index, int index_size, int num_element, int element_size)
22
bool MeshData::Allocate(int num_mesh_primitive, NuxMeshPrimitiveType primitive_type, int num_element, int element_size)
24
NUX_RETURN_VALUE_IF_FALSE(num_index >0, false);
25
NUX_RETURN_VALUE_IF_FALSE(index_size >0, false);
26
NUX_RETURN_VALUE_IF_FALSE(num_element >0, false);
27
NUX_RETURN_VALUE_IF_FALSE(element_size >0, false);
24
NUX_RETURN_VALUE_IF_FALSE(num_element > 0, false);
25
NUX_RETURN_VALUE_IF_FALSE(element_size > 0, false);
29
27
NUX_SAFE_DELETE_ARRAY(_vertex_data);
30
28
NUX_SAFE_DELETE_ARRAY(_index_data);
32
30
_num_element = num_element;
33
31
_element_size = element_size;
34
_num_index = num_index;
35
_index_size = index_size;
33
_mesh_primitive_type = primitive_type;
34
switch(primitive_type)
36
case NUX_MESH_TRIANGLE:
37
_num_index = num_mesh_primitive * 3;
40
case NUX_MESH_TRIANGLE_STRIP:
41
case NUX_MESH_TRIANGLE_FAN:
42
_num_index = num_mesh_primitive + 2;
46
_num_index = num_mesh_primitive * 2;
49
case NUX_MESH_LINE_STRIP:
50
case NUX_MESH_LINE_LOOP:
51
_num_index = num_mesh_primitive + 1;
55
_num_index = num_mesh_primitive * 4;
58
case NUX_MESH_QUAD_STRIP:
59
_num_index = num_mesh_primitive + 2;
63
_num_index = num_mesh_primitive;
37
68
_vertex_data = new unsigned char[num_element * element_size];
38
_index_data = new unsigned char[num_index * index_size];
69
_index_data = new unsigned char[_num_index * _index_size];