public LevelObject(BehaviourModel.ObjectBehaviourModel _behaviourmodel, RenderObject _renderaspect, ResourceCollectorXNA.Engine.Render.Materials.Material _material, RaycastBoundObject _raycastaspect, EditorData ed) { behaviourmodel = _behaviourmodel; renderaspect = _renderaspect; raycastaspect = _raycastaspect; editorAspect = ed; material = _material; }
/// <summary> /// генерирует террайн расположенный в центре своих лок координат /// </summary> /// <param name="size"></param> /// <returns></returns> public static TerrainObject GenerateTerrain(int WidthCount, int LenghtCount, float step, bool shadowcaster, bool shadowreceiver) { TerrainMesh to = TerrainMesh.GenerateMesh(WidthCount, LenghtCount, step); TerrainRenderObject tro = new TerrainRenderObject(to); tro.isshadowcaster = shadowcaster; tro.isshadowreceiver = shadowreceiver; RaycastBoundObject rcbo = new RaycastBoundObject(new Logic.SceneGraph.OTBoundingShape(to.Size), null); return new TerrainObject(tro, rcbo, new EditorData("sample terrain", ObjectEditorType.TerrainObject)); }
private static RaycastBoundObject loadrcbo( ResourceCollector.Content.LevelObjectDescription description, ResourceCollector.Pack packs) { //клижмеш мб один на несколько объектов//его прекрасно удалит сам гк если что EngineCollisionMesh ObjectRCCM = null; //бш уникален для каждого //его тож гк удалит Logic.SceneGraph.OTBoundingShape bs = null; if (description.IsRCCMEnabled) { ResourceCollector.Content.CollisionMesh cm = ResourceCollector.PackList.Instance.GetObject(description.RCCMName) as ResourceCollector.Content.CollisionMesh; if (cm.Enginereadedobject.Count == 0) ObjectRCCM = EngineCollisionMesh.FromcontentCollisionMesh(cm); else ObjectRCCM = cm.Enginereadedobject[0] as EngineCollisionMesh; cm.Enginereadedobject.Add(ObjectRCCM); bs = new Logic.SceneGraph.OTBoundingShape(ObjectRCCM); } else bs = new Logic.SceneGraph.OTBoundingShape(description.RCShapeSize); //его тоже удалят RaycastBoundObject raycastaspect = new RaycastBoundObject(bs, ObjectRCCM); return raycastaspect; }
public static TerrainObject SampleTerrain() { TerrainMesh to = TerrainMesh.GenerateMesh(30, 30, 2.0f); TerrainRenderObject tro = new TerrainRenderObject(to); tro.isshadowcaster = tro.isshadowreceiver = true; RaycastBoundObject rcbo = new RaycastBoundObject(new Logic.SceneGraph.OTBoundingShape(to.Size), null); return new TerrainObject(tro, rcbo, new EditorData("sample terrain1", ObjectEditorType.TerrainObject)); }