private void ShowOneDebugPixelAt(Vector3 p, System.Drawing.Color c) { if (mNumPixelNodesUsed >= mPixelsToShow.numChildren()) { // need to create new ones UWB_Primitive prim = CreateSphereMesh(); prim.EnableLighting(false); UWB_SceneNode pNode = new UWB_SceneNode(); pNode.setPrimitive(prim); UWB_XFormInfo xf = pNode.getXFormInfo(); xf.SetTranslation(p); xf.SetScale(new Vector3(kPixelSize)); pNode.setXFormInfo(xf); prim.Material.Diffuse = Vector4.Zero; prim.Material.Specular = Vector4.Zero; prim.Material.Ambient = Vector4.Zero; prim.Material.Emissive = new Vector4(c.R / 255.0f, c.G / 255.0f, c.B / 255.0f, 1f); mPixelsToShow.insertChildNode(pNode); } else { // there are more to be reused ... UWB_SceneNode n = mPixelsToShow.getChildNode(mNumPixelNodesUsed); UWB_XFormInfo xf = n.getXFormInfo(); xf.SetTranslation(new Vector3(p.X, p.Y, p.Z)); UWB_Primitive prim = n.getPrimitive(); prim.setVisible(true); prim.Material.Diffuse = Vector4.Zero; prim.Material.Specular = Vector4.Zero; prim.Material.Ambient = Vector4.Zero; prim.Material.Emissive = new Vector4(c.R / 255.0f, c.G / 255.0f, c.B / 255.0f, 1f); } }
public void InitializePixelsToShow() { if (null != mPixelsToShow) { mNumPixelNodesUsed = 0; mShownPixelX = mShownPixelY = 0; int count = mPixelsToShow.numChildren(); for (int i = count - 1; i >= 0; i--) { UWB_SceneNode n = mPixelsToShow.getChildNode(i); n.getPrimitive().setVisible(false); } } }