Original Post
Hi all, a simple question I'm sure but...
I'm rendering my object as standard but when I select an object I would like to change its diffuse colour to red or something to show that its selected. The thing is that even though I use an if statement to set the diffuse to red only if its selected it always remains red even after I stop selecting it, also its not like I can do an else statement to say to render the model the colour it was loaded because it doesn't remember what colour as it has been overridden as red.
For example this is what I currently have...
Any help much appreciated
I'm rendering my object as standard but when I select an object I would like to change its diffuse colour to red or something to show that its selected. The thing is that even though I use an if statement to set the diffuse to red only if its selected it always remains red even after I stop selecting it, also its not like I can do an else statement to say to render the model the colour it was loaded because it doesn't remember what colour as it has been overridden as red.
For example this is what I currently have...
// Draw scene.
foreach (SceneObject sceneObject in Scene.ObjectList)
{
boneTransforms = new Matrix[sceneObject.Model.Bones.Count];
sceneObject.Model.CopyAbsoluteBoneTransformsTo(boneTransforms);
foreach (ModelMesh mesh in sceneObject.Model.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
if (Scene.SelectedObjects.Contains(sceneObject))
{
effect.DiffuseColor = new Vector3(1, 0, 0);
}
else
{
//???
}
effect.World = boneTransforms[mesh.ParentBone.Index] * sceneObject.World;
effect.View = GetViewMatrix();
effect.Projection = GetProjectionMatrix();
effect.EnableDefaultLighting();
effect.PreferPerPixelLighting = true;
effect.SpecularPower = 16;
}
mesh.Draw();
}
}
Any help much appreciated