THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/07/2007 at 01:00, xxxxxxxx wrote:
User Information:
Cinema 4D Version:
Platform:
Language(s) : C++ ;
---------
I can to add an new camera? but can't get target object to display in showmap()? some anyone can help me? the code bellow :
bool DoAddCamera()
{
MessageDialog("AddCamera START!");
BaseDocument* doc = GetActiveDocument();
BaseObject* null = doc->GetActiveObject();
if (!null) return false;
CameraObject* cam = (CameraObject* )BaseObject::Alloc(Ocamera);
if ( !cam )
{
MessageDialog("CameraObject Create Fail!");
return false;
}
doc->InsertObject(cam, NULL, NULL);
Vector objvcr = null->GetMg().off;
Vector camvcr;
camvcr.x = objvcr.x - 500;
camvcr.y = objvcr.y + 500;
camvcr.z = objvcr.z - 500;
cam->SetPos( camvcr );
cam->SetRot(Vector(-0.8, -0.6, 0)); // Set rotation (radians, HPB)
cam->SetZoom( 1.0 );
cam->SetAperture( 36.0 );
cam->SetFocus( 36.0 );
cam->SetEditorMode( MODE_ON );
AutoAlloc<BaseLink> link;
link->SetLink( null );
cam->SetParameter(DescID(TARGETEXPRESSIONTAG_LINK), GeData(link), NULL);
EventAdd();
// Active the camera
BaseObject* oldcam = doc->GetActiveBaseDraw()->GetSceneCamera(doc);
doc->GetActiveBaseDraw()->SetSceneCamera(cam);
// Create some temporaries for the render
BaseContainer rdata = cam->GetData();
BaseBitmap* bmp = BaseBitmap::Alloc();
bmp->Init(400, 400);
DrawViews(DA_FORCEFULLREDRAW);
bmp->Save( GeGetStartupPath() + "test_camera.jpg", FILTER_JPG ,&rdata, SAVEBIT_32b*tchANNELS);
// Active the old camera
doc->GetActiveBaseDraw()->SetSceneCamera(oldcam);
DrawViews(DA_FORCEFULLREDRAW);
ShowBitmap(bmp);
BaseBitmap::Free( bmp );
MessageDialog("AddCamera End!");
}