protected override void RenderModel(SimpleUIRectArgs args, OpenGL gl, SceneGraph.Core.RenderMode renderMode) { // Draw rectangle to show UI's scope. base.RenderModel(args, gl, renderMode); this.colorBarTransform.ScaleX = (float)args.UIWidth / (float)ColorIndicatorBar.barWidth; this.colorBarTransform.ScaleY = (float)args.UIHeight / (float)ColorIndicatorBar.barHeight; //this.colorBarTransform.ScaleZ = 1;// This is not needed. this.colorBarTransform.TranslateZ = -base.zNear;// make sure UI shows in front of enything else. this.colorNumber.CurrentArgs = args; }
protected override void RenderModel(SimpleUIRectArgs args, OpenGL gl, SceneGraph.Core.RenderMode renderMode) { // Draw rectangle to show UI's scope. base.RenderModel(args, gl, renderMode); // ** / 2: half of width/height, // ** / 3: CylinderAxis' length is 3. this.axisTransform.ScaleX = args.UIWidth / 2 / 3; this.axisTransform.ScaleY = args.UIHeight / 2 / 3; int max = Math.Max(args.UIWidth, args.UIHeight); this.axisTransform.ScaleZ = (this.CoordSystem == CoordinateSystem.RightHand ? 1 : -1) * max / 2 / 3; //this.axisTransform.TranslateZ = base.zFar;// make sure UI shows in front of enything else. //var target2Position = base.Camera.Position - base.Camera.Target; //target2Position.Normalize(); //target2Position *= 100; //this.axisTransform.TranslateX = base.Camera.Position.X + target2Position.X; //this.axisTransform.TranslateY = base.Camera.Position.Y + target2Position.Y; //this.axisTransform.TranslateZ = base.Camera.Position.Z + target2Position.Z; }
/// <summary> /// Render the element that inherts <see cref="IColorCodedPicking"/> for color coded picking. /// </summary> /// <param name="picking"></param> /// <param name="gl"></param> /// <param name="renderMode"></param> public virtual void RenderForPicking(IColorCodedPicking picking, OpenGL gl, SceneGraph.Core.RenderMode renderMode) { if (picking != null) { picking.PickingBaseID = this.RenderedVertexCount; // render the element. SharpGL.SceneGraph.Core.IRenderable renderable = picking; renderable.Render(gl, renderMode); uint rendered = this.RenderedVertexCount + picking.GetVertexCount(); if (this.RenderedVertexCount <= rendered) { this.RenderedVertexCount = rendered; } else { throw new OverflowException( string.Format("Too many geometries({0} + {1} > {2}) for color coded picking.", this.RenderedVertexCount, picking.GetVertexCount(), uint.MaxValue)); } } }
protected override void RenderModel(SimpleUIRectArgs args, OpenGL gl, SceneGraph.Core.RenderMode renderMode) { base.RenderModel(args, gl, renderMode); }