2
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License
6
* as published by the Free Software Foundation; either version 2
7
* of the License, or (at your option) any later version. The Blender
8
* Foundation also sells licenses for use in proprietary software under
9
* the Blender License. See http://www.blender.org/BL/ for information
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
17
* You should have received a copy of the GNU General Public License
18
* along with this program; if not, write to the Free Software Foundation,
19
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
22
* All rights reserved.
24
* The Original Code is: all of this file.
26
* Contributor(s): none yet.
28
* ***** END GPL/BL DUAL LICENSE BLOCK *****
31
#ifndef BOP_MATERIALCONTAINER_H
32
#define BOP_MATERIALCONTAINER_H
35
#include "BOP_Material.h"
36
#include "BOP_Interface.h"
40
typedef vector<BOP_Material> BOP_Materials;
41
typedef vector<BOP_Material>::iterator BOP_IT_Materials;
43
class BOP_MaterialContainer
46
BOP_Materials m_materialList;
47
CSG_InterpolateUserFaceVertexDataFunc m_interpFunc;
50
BOP_MaterialContainer();
51
~BOP_MaterialContainer();
52
BOP_Index addMaterial(BOP_Material m);
53
void setInterpFunc(CSG_InterpolateUserFaceVertexDataFunc interpFunc);
54
BOP_Materials& getMaterialList();
55
BOP_Material* getMaterial(BOP_Index index);
56
char* getFaceMaterial(BOP_Index index);
57
char* getFaceVertexMaterial(BOP_Mesh *mesh,
58
BOP_Index originalFaceIndex,
60
char* faceVertexMaterial);
62
friend ostream &operator<<(ostream &stream, BOP_MaterialContainer *mc);
65
char* interpolateMaterial(BOP_Mesh* mesh,
67
BOP_Material& material,
69
char* faceVertexMaterial);