Пример #1
0
 public void CompleteBBox(CollisionMeshGroup ent1)
 {
     ent1.BoundingBox = ent1.Meshes
                        .Select(x => x.BoundingBox)
                        .Concat(SelectBoundingBoxList(ent1))
                        .MergeAll();
 }
Пример #2
0
 public void CompleteBBox(CollisionMeshGroup ent1)
 {
     ent1.BoundingBox = Enumerable.Range(
         ent1.CollisionMeshStart,
         ent1.CollisionMeshEnd - ent1.CollisionMeshStart
         )
                        .Select(index => coct.CollisionMeshList[index].BoundingBox)
                        .MergeAll();
 }
Пример #3
0
            private IEnumerable <BoundingBoxInt16> SelectBoundingBoxList(CollisionMeshGroup ent1)
            {
                if (ent1.Child1 != -1)
                {
                    yield return(coct.CollisionMeshGroupList[ent1.Child1].BoundingBox);

                    if (ent1.Child2 != -1)
                    {
                        yield return(coct.CollisionMeshGroupList[ent1.Child2].BoundingBox);

                        if (ent1.Child3 != -1)
                        {
                            yield return(coct.CollisionMeshGroupList[ent1.Child3].BoundingBox);

                            if (ent1.Child4 != -1)
                            {
                                yield return(coct.CollisionMeshGroupList[ent1.Child4].BoundingBox);

                                if (ent1.Child5 != -1)
                                {
                                    yield return(coct.CollisionMeshGroupList[ent1.Child5].BoundingBox);

                                    if (ent1.Child6 != -1)
                                    {
                                        yield return(coct.CollisionMeshGroupList[ent1.Child6].BoundingBox);

                                        if (ent1.Child7 != -1)
                                        {
                                            yield return(coct.CollisionMeshGroupList[ent1.Child7].BoundingBox);

                                            if (ent1.Child8 != -1)
                                            {
                                                yield return(coct.CollisionMeshGroupList[ent1.Child8].BoundingBox);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
Пример #4
0
 public CollisionMeshGroup CompleteAndAdd(CollisionMeshGroup it)
 {
     buildHelper.CompleteBBox(it);
     CollisionMeshGroupList.Add(it);
     return(it);
 }