|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MdxScene.Shapes;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
namespace MdxScene.Example
{
public class House : D3dShape
{
private D3dComposedShape _composedHouse;
private D3dBox _houseBody;
private Pyramid _houseRoof;
public House()
{
BodyMaterial = DefaultMaterial;
RoofMaterial = DefaultMaterial;
_composedHouse = new D3dComposedShape();
_houseBody = new D3dBox
{
ScalingY = 0.5f,
TranslationY = -0.25f,
IsPickable = false
};
_composedHouse.Shapes.Add(_houseBody);
_houseRoof = new Pyramid
{
ScalingY = 0.5f,
TranslationY = 0.25f,
IsPickable = false
};
_composedHouse.Shapes.Add(_houseRoof);
}
#region D3dShape implementation
public override void Render(Device d3dDevice)
{
_composedHouse.IsVisible = IsVisible;
_houseBody.DefaultMaterial = BodyMaterial;
_houseRoof.DefaultMaterial = RoofMaterial;
_composedHouse.Parent = this;
_composedHouse.EnvironmentData = EnvironmentData;
_composedHouse.Render(d3dDevice);
}
public override void AddPointIntersections(Device d3dDevice, float surfaceX, float surfaceY, List<IntersectResult> targetIntersectionsList)
{
_composedHouse.IsHitTestVisible = IsHitTestVisible;
_composedHouse.AddPointIntersections(d3dDevice, surfaceX, surfaceY, targetIntersectionsList);
}
public override void AddRayIntersections(Vector3 rayOrigin, Vector3 rayDirection, List<IntersectResult> targetIntersectionsList)
{
_composedHouse.IsHitTestVisible = IsHitTestVisible;
_composedHouse.AddRayIntersections(rayOrigin, rayDirection, targetIntersectionsList);
}
#endregion
#region Properties
public Material BodyMaterial { get; set; }
public Material RoofMaterial { get; set; }
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.