| 210 | | void MultiPassMaterialBase::insertMaterial( UInt32 uiIndex, |
|---|
| 211 | | const MaterialPtr value ) |
|---|
| 212 | | { |
|---|
| 213 | | if(value == NullFC) |
|---|
| 214 | | return; |
|---|
| 215 | | |
|---|
| 216 | | editMField(MaterialsFieldMask, _mfMaterials); |
|---|
| 217 | | |
|---|
| 218 | | MFUnrecMaterialPtr::iterator fieldIt = _mfMaterials.begin_nc(); |
|---|
| 219 | | |
|---|
| 220 | | //addRef(value); |
|---|
| 221 | | |
|---|
| 222 | | fieldIt += uiIndex; |
|---|
| 223 | | |
|---|
| 224 | | _mfMaterials.insert(fieldIt, value); |
|---|
| 225 | | } |
|---|
| 226 | | |
|---|
| 227 | | void MultiPassMaterialBase::replaceMaterial( UInt32 uiIndex, |
|---|
| 228 | | const MaterialPtr value ) |
|---|
| 229 | | { |
|---|
| 230 | | if(value == NullFC) |
|---|
| 231 | | return; |
|---|
| 232 | | |
|---|
| 233 | | if(uiIndex >= _mfMaterials.size()) |
|---|
| 234 | | return; |
|---|
| 235 | | |
|---|
| 236 | | editMField(MaterialsFieldMask, _mfMaterials); |
|---|
| 237 | | |
|---|
| 238 | | |
|---|
| 239 | | // addRef(value); |
|---|
| 240 | | // subRef(_mfMaterials[uiIndex]); |
|---|
| 241 | | |
|---|
| 242 | | // _mfMaterials[uiIndex] = value; |
|---|
| 243 | | |
|---|
| 244 | | _mfMaterials.replace(uiIndex, value); |
|---|
| 245 | | } |
|---|
| 246 | | |
|---|
| 247 | | void MultiPassMaterialBase::replaceMaterial(const MaterialPtr pOldElem, |
|---|
| 248 | | const MaterialPtr pNewElem) |
|---|
| 249 | | { |
|---|
| 250 | | if(pNewElem == NullFC) |
|---|
| 251 | | return; |
|---|
| 252 | | |
|---|
| 253 | | Int32 elemIdx = _mfMaterials.findIndex(pOldElem); |
|---|
| 254 | | |
|---|
| 255 | | if(elemIdx != -1) |
|---|
| | 212 | void MultiPassMaterialBase::subMaterial(UInt32 uiIndex) |
|---|
| | 213 | { |
|---|
| | 214 | if(uiIndex < _mfMaterials.size()) |
|---|
| 259 | | // MFMaterialPtr::iterator fieldIt = _mfMaterials.begin(); |
|---|
| 260 | | |
|---|
| 261 | | // fieldIt += elemIdx; |
|---|
| 262 | | // addRef(pNewElem); |
|---|
| 263 | | // subRef(pOldElem); |
|---|
| 264 | | |
|---|
| 265 | | // (*fieldIt) = pNewElem; |
|---|
| 266 | | _mfMaterials.replace(elemIdx, pNewElem); |
|---|
| 267 | | } |
|---|
| 268 | | } |
|---|
| 269 | | |
|---|
| 270 | | void MultiPassMaterialBase::subMaterial(UInt32 uiIndex) |
|---|
| 271 | | { |
|---|
| 272 | | if(uiIndex < _mfMaterials.size()) |
|---|
| | 218 | MFUnrecMaterialPtr::iterator fieldIt = _mfMaterials.begin_nc(); |
|---|
| | 219 | |
|---|
| | 220 | fieldIt += uiIndex; |
|---|
| | 221 | |
|---|
| | 222 | _mfMaterials.erase(fieldIt); |
|---|
| | 223 | } |
|---|
| | 224 | } |
|---|
| | 225 | |
|---|
| | 226 | void MultiPassMaterialBase::subMaterial(const MaterialPtr value) |
|---|
| | 227 | { |
|---|
| | 228 | Int32 iElemIdx = _mfMaterials.findIndex(value); |
|---|
| | 229 | |
|---|
| | 230 | if(iElemIdx != -1) |
|---|