public bool FindResult(int abgr, out HitTestResult result) { result = new HitTestResult(); var id = Color4.ConvertToRGBA(abgr); if (id <= 0) { return(false); } id -= 1; var visibleComponents = Engine.Scene.VisibleComponents; var drawables = Engine.Scene.Drawables; if (id < visibleComponents.Count) { var entry = visibleComponents[id]; result = new HitTestResult { Drawable = entry.Graphic, Frame = entry.Node, RenderId = id }; results.Add(result); return(true); } else { id -= visibleComponents.Count; if (id < drawables.Count) { result = new HitTestResult { Drawable = drawables[id], RenderId = id }; results.Add(result); return(true); } } return(false); }
public bool FindResult(int abgr, out HitTestResult result) { result = new HitTestResult(); var id = Color4.ConvertToRGBA(abgr); if (id <= 0) { return(false); } id -= 1; var scene = Engine.Scene; if (id < 0 || id > scene.Materials.Count) { return(false); } result.Data = scene.Materials[id]; return(true); }
public bool FindResult(int abgr, out HitTestResult result) { result = new HitTestResult(); var id = Color4.ConvertToRGBA(abgr); if (id <= 0 || id > glyp.Components.Length) { return(false); } result.Data = glyp.Components[id - 1]; //AxisName axis = (AxisName)id; //switch (axis) //{ // case AxisName.X: // result.Data = coordinate.Components[0]; // break; // case AxisName.Y: // result.Data = coordinate.Components[1]; // break; // case AxisName.Z: // result.Data = coordinate.Components[2]; // break; // case AxisName.XY: // result.Data = coordinate.Components[3]; // break; // case AxisName.XZ: // result.Data = coordinate.Components[4]; // break; // case AxisName.YZ: // result.Data = coordinate.Components[5]; // break; //} _resultList.Add(result); return(true); }