Problem creating camera
Anonymous
Not applicable
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2005-06-10
09:50 AM
- last edited on
2023-08-07
12:02 PM
by
Doreena Deng
2005-06-10
09:50 AM
Hello,
I am in the process of porting my APX over to the 6.1 API using ArchiCAD v9.
My problem is with code that used to create a 3d camera that looks down over my plan. I can't see any reason why it should not work in v9 but I get an APIERR_BADINDEX every time.
I'm not too worried about most of the values I just want a camera that shows a 3d floorplan ie. a single frame above the house facing down. In v7 I just set camSetIndex to 1 and it worked fine.
memset(&element, 0, sizeof(API_Element));
element.header.typeID = API_CamSetID;
element.camset.camType = API_PersCamera;
strcpy(element.camset.name, "test");
element.camset.u.perspPars.openedPath = true;
element.camset.u.perspPars.bezierPath = false;
element.camset.u.perspPars.smoothTarget = false;
element.camset.u.perspPars.pen = 1;
element.camset.u.perspPars.inFrames = 0;
element.camset.active = false;
err = ACAPI_Element_Create(&element, NULL);
if(err == noErr) {
camSetIndex = element.header.index;
memset(&element, 0, sizeof(API_Element));
element.header.typeID = API_CameraID;
element.camera.camSetIndex = camSetIndex;
element.camera.camType = API_PersCamera;
element.camera.u.perspCam.pen = 1;
element.camera.u.perspCam.active = true;
element.camera.u.perspCam.persp.cameraZ = 30;
element.camera.u.perspCam.persp.distance = 10;
element.camera.u.perspCam.persp.viewCone = 90.0 * DEGRAD;
element.camera.u.perspCam.persp.azimuth = 270.0 * DEGRAD;
element.camera.u.perspCam.persp.rollAngle = 270 * DEGRAD;
element.camera.u.perspCam.persp.pos.x = centerX;
element.camera.u.perspCam.persp.pos.y = centerY;
element.camera.u.perspCam.persp.sunAltitude = 50.0 * DEGRAD;
element.camera.u.perspCam.persp.sunAzumuth = 240.0
element.camera.u.perspCam.persp.target.x = centerX;
element.camera.u.perspCam.persp.target.y = centerY;
element.camera.u.perspCam.persp.targetZ = 0.0
err = ACAPI_Element_Create(&element, NULL);
if(err != noErr)
{
// err is APIERR_BADINDEX
}
}
I am in the process of porting my APX over to the 6.1 API using ArchiCAD v9.
My problem is with code that used to create a 3d camera that looks down over my plan. I can't see any reason why it should not work in v9 but I get an APIERR_BADINDEX every time.
I'm not too worried about most of the values I just want a camera that shows a 3d floorplan ie. a single frame above the house facing down. In v7 I just set camSetIndex to 1 and it worked fine.
memset(&element, 0, sizeof(API_Element));
element.header.typeID = API_CamSetID;
element.camset.camType = API_PersCamera;
strcpy(element.camset.name, "test");
element.camset.u.perspPars.openedPath = true;
element.camset.u.perspPars.bezierPath = false;
element.camset.u.perspPars.smoothTarget = false;
element.camset.u.perspPars.pen = 1;
element.camset.u.perspPars.inFrames = 0;
element.camset.active = false;
err = ACAPI_Element_Create(&element, NULL);
if(err == noErr) {
camSetIndex = element.header.index;
memset(&element, 0, sizeof(API_Element));
element.header.typeID = API_CameraID;
element.camera.camSetIndex = camSetIndex;
element.camera.camType = API_PersCamera;
element.camera.u.perspCam.pen = 1;
element.camera.u.perspCam.active = true;
element.camera.u.perspCam.persp.cameraZ = 30;
element.camera.u.perspCam.persp.distance = 10;
element.camera.u.perspCam.persp.viewCone = 90.0 * DEGRAD;
element.camera.u.perspCam.persp.azimuth = 270.0 * DEGRAD;
element.camera.u.perspCam.persp.rollAngle = 270 * DEGRAD;
element.camera.u.perspCam.persp.pos.x = centerX;
element.camera.u.perspCam.persp.pos.y = centerY;
element.camera.u.perspCam.persp.sunAltitude = 50.0 * DEGRAD;
element.camera.u.perspCam.persp.sunAzumuth = 240.0
element.camera.u.perspCam.persp.target.x = centerX;
element.camera.u.perspCam.persp.target.y = centerY;
element.camera.u.perspCam.persp.targetZ = 0.0
err = ACAPI_Element_Create(&element, NULL);
if(err != noErr)
{
// err is APIERR_BADINDEX
}
}
Labels:
- Labels:
-
Add-On (C++)
3 REPLIES 3
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2005-06-11 12:49 AM
2005-06-11
12:49 AM
adambutler wrote:Are you initialising the undo session before creating the camera element? i.e. ACAPI_OpenUndoableSession and ACAPI_CloseUndoableSession.
My problem is with code that used to create a 3d camera that looks down over my plan. I can't see any reason why it should not work in v9 but I get an APIERR_BADINDEX every time.
Ralph Wessel BArch
Central Innovation
Central Innovation
Anonymous
Not applicable
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2005-06-14 03:32 AM
2005-06-14
03:32 AM
yes, and the camset gets created fine
Anonymous
Not applicable
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2005-06-14 06:21 AM
2005-06-14
06:21 AM
I found the problem. AC9 requires me to set prevCam to -1.
Thanks,
Adam
Thanks,
Adam