/// <summary> /// Generate new culling sphere if needed<para/> /// Генерация новой сферы отсечения, если требуется /// </summary> protected void PrepareSphere() { if (needNewSphere && SubMesh != null) { PrepareMatrix(); cullSphere = SubMesh.GetSphere(completeMatrix); needNewSphere = false; } }
/// <summary> /// Конструктор /// </summary> public WireGridComponent() { cellSize = 1f; cellCount = 30; groupedCells = 10; WireWidth = 0.5f; accentColor = Color.FromArgb(80, 80, 80); mainColor = Color.FromArgb(60, 60, 60); cull = new CullSphere(); needBuffer = true; }
/// <summary> /// Перестройка сферы отсечения /// </summary> protected virtual void RebuildCullSphere() { List <CullBox> culls = new List <CullBox>(); foreach (EntityComponent c in components) { if (c is IRenderable) { CullBox cb = c.GetCullingBox(); if (cb != null) { culls.Add(cb); } } } cullSphere = CullBox.FromBoxes(culls.ToArray()).ToSphere(); cullSphere.Position = PointToWorld(cullSphere.Position); needCullRebuild = false; }
/// <summary> /// Generate new culling sphere if needed<para/> /// Генерация новой сферы отсечения, если требуется /// </summary> protected void PrepareSphere() { if (needNewSphere && SubMesh!=null) { PrepareMatrix(); cullSphere = SubMesh.GetSphere(completeMatrix); needNewSphere = false; } }