Transform Screen to World Coordinates
Windows only
Demonstrates how to transform screen coordinates to world coordinates.
CRhinoCommand::result CCommandTest::RunCommand( const CRhinoCommandContext& context ) { CRhinoCommand::result rc = failure; // Get the active view CRhinoView* view = RhinoApp().ActiveView(); if( view ) { // Get the current cursor position POINT point; if( GetCursorPos(&point ) ) { // Convert the screen coordinates to client coordinates view->ScreenToClient( &point ); // Obtain the view's screen-to-world transformation ON_Xform screen_to_world; view->ActiveViewport().VP().GetXform( ON::screen_cs, ON::world_cs, screen_to_world ); // Create a 3-D point ON_3dPoint pt( point.x, point.y, 0 ); // Transform it pt.Transform( screen_to_world ); // Add it to the document context.m_doc.AddPointObject( pt ); context.m_doc.Redraw(); rc = success; } } return rc; }