public void Draw( Graphics.ISceneContext sc ) { using ( var scope = sc.Push() ) { scope.DepthTest = false; scope.BackFaceCulling = true; DrawBox( sc, this.BoundingBox ); scope.Color = Color.Red; scope.Lighting = true; Geom.Point3d p = sc.Camera.ScreenToCamera( _pos ); double len = _length * sc.Camera.LengthPerPixel; scope.MultMatrix( new Geom.HmMatrix3d( 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, p.x / len, p.y / len, 0, 1 / len ) ); scope.MultMatrix( sc.Camera.ViewingPos.r.ToMatrix() ); // �f�v�X�Ń\�[�g���A�������O�Ɍ������ď��ɕ`�悷��悤�ɂ��� foreach ( var scene in _components.OrderBy( s => s.GetDepth( sc ) ) ) { scene.Draw( sc ); } } }
public void Draw( Graphics.ISceneContext sc ) { if ( this.Direction == ClipDirections.None ) return; using ( var scope = sc.Push() ) { var epsilon = 1.0e-3 * _docviews.WorldDocumentScene.BoundingSphere.Radius; var codsys = _clip.CodSys; codsys.o -= epsilon * codsys.n; scope.MultMatrix( codsys ); scope.Color = Color.FromArgb( 16, Color.Lime ); scope.DepthMask = false; scope.Lighting = false; var radius = _docviews.WorldDocumentScene.BoundingSphere.Radius; sc.DrawQuads( gl => { gl.Vertex( radius, radius ); gl.Vertex( -radius, radius ); gl.Vertex( -radius, -radius ); gl.Vertex( radius, -radius ); } ); scope.Color = (_highlightIndex == -1) ? Color.Lime : Color.Orange; sc.DrawLineLoop( gl => { gl.Vertex( radius, radius ); gl.Vertex( -radius, radius ); gl.Vertex( -radius, -radius ); gl.Vertex( radius, -radius ); } ); } }
public void Draw( Graphics.ISceneContext sc ) { using ( var scope = sc.Push() ) { scope.Color = this.Color; _obj.Render(); } }