Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 10/11/2010 at 18:03, xxxxxxxx wrote:
User Information: Cinema 4D Version: 12 Platform: Windows ; Language(s) : C++ ;
--------- I am trying to draw a line in 3D space, however with the following code:
BaseObject *op = doc->GetActiveObject(); if (!op) return TOOLDRAW_0; bd->SetMatrix_Matrix(NULL, Matrix()); bd->SetPen(Vector(1,0,1)); Vector position = op->GetRelPos(); bd->DrawLine2D(position, position + (0, 0, 600)); bd->DrawLine2D(position, position + (0, 600, 0)); bd->DrawLine2D(position, position + (600, 0, 0)); return TOOLDRAW_HANDLES;
I get a line being drawn across the view port instead of in 3d space. I thought that DrawLine() replaced Line3D()? Am I doing something wrong?
~Shawn
On 10/11/2010 at 20:40, xxxxxxxx wrote:
You are showing DrawLine2D() instead of DrawLine() in your code. DrawLine2D() only draws in Screen space (2D).
Remember that the DrawLine() coordinates must be in World space (not local - which is what GetRelPos() retrieves!). You would be better served using:
Vector position = op->GetMg().off;