public void SetDebugMode(IDeviceContextHolder holder, bool enabled) { if (enabled == (_debugMaterial != null)) { return; } if (enabled) { var material = holder.Get <SharedMaterials>().GetMaterial(new Tuple <object, uint>(BasicMaterials.DebugKey, OriginalNode.MaterialId)); _debugMaterial = material as ISkinnedMaterial; if (_debugMaterial == null) { AcToolsLogging.Write("Error: ISkinnedMaterial required for Kn5SkinnedObject!"); material.Dispose(); return; } if (IsInitialized) { _debugMaterial.Initialize(holder); _debugMaterialInitialized = true; } } else { _debugMaterialInitialized = false; DisposeHelper.Dispose(ref _debugMaterial); } }
protected override void Initialize(IDeviceContextHolder contextHolder) { base.Initialize(contextHolder); var material = contextHolder.Get <SharedMaterials>().GetMaterial(OriginalNode.MaterialId); _material = material as ISkinnedMaterial; if (_material == null) { AcToolsLogging.Write("Error: ISkinnedMaterial required for Kn5SkinnedObject!"); material.Dispose(); _material = new InvisibleMaterial(); } _material.Initialize(contextHolder); var model = contextHolder.Get <IKn5Model>(); _bonesNodes = OriginalNode.Bones.Select(x => model.GetDummyByName(x.Name)).ToArray(); if (_debugMaterial != null && !_debugMaterialInitialized) { _debugMaterialInitialized = true; _debugMaterial.Initialize(contextHolder); } }