Welcome to MSDN Blogs Sign in | Join | Help

Using a plugin to add a billboard to Virtual Earth 3D

To add objects to the VE3D world we need to create our own actor that knows how to render itself.

Actors descend from Microsoft.MapPoint.Rendering3D.Steps.Actors.Actor and must override the Render method. When it comes time to render a frame, all actors have their Render method called to queue up renderable objects. To show a billboard we'll create a BillboardActor and use a SpriteGraphicsObject to render our image.

        public BillboardActor(LatLonAlt position)

        {

            this.texture = Texture.FromResource(this.GetType().Assembly, "VirtualEarth3DSamplePlugins.Billboard.Flower.png");

 

            this.billboard = new SpriteGraphicsObject();

            this.billboard.Texture = this.texture;

            this.billboard.Mode = SpriteMode.Billboard;

            this.billboard.Scale = new Vector2D(1000, 1000);

            this.billboard.Color = Color.White;

            this.billboard.AlphaEnable = true;

            this.billboard.Position = position.GetVector();

        }

 

        public override void Render(Microsoft.MapPoint.Rendering3D.Scene.SceneState sceneState)

        {

            RenderQueues renderQueues = sceneState.GetData<RenderQueues>();

 

            renderQueues.AddAlphaRenderable(0, this.billboard);

        }

Once we have our actor we just need to add it to the ActorManager so it knows to start rendering it. We can do this in our Activate method on the plugin.

            LatLonAlt position = LatLonAlt.CreateUsingDegrees(46.849743288383046, -121.7498016357422, 5000);

            // Add the actor at the specified position

            this.Host.Actors.Add(new BillboardActor(position));

Billboard in action 

You can browse the source code for the actor and the plugin online or download the entire project.
BillboardActor.cs | BillboardPlugin.cs
Download project

Published Wednesday, November 14, 2007 12:10 PM by Kristoffer

Comments

# Kristoffer s tidbits Using a plugin to add a billboard to Virtual | Outdoor Ceiling Fans

New Comments to this post are disabled
 
Page view tracker