ConeDraw: DrawProc ~ {
d: ConeData ¬ NARROW[clientData];
view: G3dMatrix.Matrix ¬ G3dTool.GetView[viewer].camera.matrix;
vp: G3dMatrix.Viewport ¬ G3dTool.GetView[viewer].viewport;
G3dDraw.DrawCircle[context, [-d.w,d.h,0], [-d.w,0,d.h], [-d.w,-d.h,0], 30, view, vp];
G3dDraw.DrawSegment[context, [-d.w, d.h, 0], [0, 0, 0], view, vp];
G3dDraw.DrawSegment[context, [-d.w, 0, d.h], [0, 0, 0], view, vp];
G3dDraw.DrawSegment[context, [-d.w, -d.h, 0], [0, 0, 0], view, vp];
G3dDraw.DrawSegment[context, [-d.w, 0, -d.h], [0, 0, 0], view, vp];
G3dDraw.DrawSegment[context, [d.x, d.rad, 0], [d.tip, d.rad, 0], view, vp];
G3dDraw.DrawSegment[context, [d.x, -d.rad, 0], [d.tip, -d.rad, 0], view, vp];
G3dDraw.DrawSegment[context, [d.x, 0, d.rad], [d.tip, 0, d.rad], view, vp];
G3dDraw.DrawSegment[context, [d.x, 0, -d.rad], [d.tip, 0, -d.rad], view, vp];
G3dDraw.DrawCircle[context,[d.tip,d.rad,0],[d.tip+d.rad,0,0],[d.tip,-d.rad,0],10, view, vp];
G3dDraw.DrawCircle[context,[d.tip,0,d.rad],[d.tip+d.rad,0,0],[d.tip,0,-d.rad],10, view, vp];
};
ConeDraw: DrawProc ~ {
d: ConeData ¬ NARROW[data];
G3dDraw.DrawCircle[context, [-d.w,d.h,0], [-d.w,0,d.h], [-d.w,-d.h,0], 30, d.tool.view];
G3dDraw.DrawCircle[context, [d.w,d.h,0], [d.w,0,d.h], [d.w,-d.h,0], 30, d.tool.view];
G3dDraw.DrawSegment[context, [-d.w, d.h, 0], [d.w, -d.h, 0], d.tool.view];
G3dDraw.DrawSegment[context, [-d.w, 0, d.h], [d.w, 0, -d.h], d.tool.view];
G3dDraw.DrawSegment[context, [-d.w, -d.h, 0], [d.w, d.h, 0], d.tool.view];
G3dDraw.DrawSegment[context, [-d.w, 0, -d.h], [d.w, 0, d.h], d.tool.view];
};