public override bool SetMaterial(object material) { CasterLogger.Debug("SetMaterial"); if (material == null) { return(false); } if (material is ICapeThermoMaterial) { //_alreadyFlashed = true; MaterialObjectVersion = 11; _capeThermoMaterial = material as ICapeThermoMaterial; _capeThermoMaterialContext = material as ICapeThermoMaterialContext; _capeThermoPhases = material as ICapeThermoPhases; _capeThermoCompounds = material as ICapeThermoCompounds; _capeThermoPropertyRoutine = material as ICapeThermoPropertyRoutine; _capeThermoEquilibriumRoutine = material as ICapeThermoEquilibriumRoutine; _capeThermoUniversalConstant = material as ICapeThermoUniversalConstant; } else if (material is MaterialObject11) { SetMaterial(((MaterialObject11)material).CapeThermoMaterialObject); } else { throw new ArgumentException("parameter is not a CO1.1 material object"); } GetListOfAllowedPhase(out string[] _, out string _2); UpdateCompoundList(); CasterLogger.Debug("SetMaterial completed"); return(true); }
protected override void Dispose(bool disposing) { CasterLogger.Debug("Dispose material10."); if (_capeThermoMaterial != null && _capeThermoMaterial.GetType().IsCOMObject) { Marshal.ReleaseComObject(_capeThermoMaterial); } if (_capeThermoCompounds != null && _capeThermoCompounds.GetType().IsCOMObject) { Marshal.ReleaseComObject(_capeThermoCompounds); } if (_capeThermoEquilibriumRoutine != null && _capeThermoEquilibriumRoutine.GetType().IsCOMObject) { Marshal.ReleaseComObject(_capeThermoEquilibriumRoutine); } if (_capeThermoMaterialContext != null && _capeThermoMaterialContext.GetType().IsCOMObject) { Marshal.ReleaseComObject(_capeThermoMaterialContext); } if (_capeThermoPhases != null && _capeThermoPhases.GetType().IsCOMObject) { Marshal.ReleaseComObject(_capeThermoPhases); } if (_capeThermoPropertyRoutine != null && _capeThermoPropertyRoutine.GetType().IsCOMObject) { Marshal.ReleaseComObject(_capeThermoPropertyRoutine); } if (_capeThermoUniversalConstant != null && _capeThermoUniversalConstant.GetType().IsCOMObject) { Marshal.ReleaseComObject(_capeThermoUniversalConstant); } _capeThermoMaterial = null; _capeThermoMaterialContext = null; _capeThermoPhases = null; _capeThermoCompounds = null; _capeThermoPropertyRoutine = null; _capeThermoEquilibriumRoutine = null; _capeThermoUniversalConstant = null; CasterLogger.Debug("Dispose material10 completed."); }