|
@@ -57,6 +57,7 @@ void la_RootObjectDrawFullscreenQuad(tnsOffscreen* DeferredOffScr,tnsCamera* c,
|
|
|
|
|
|
void la_RootObjectDraw(laBoxedTheme *bt, tnsObject *root, laUiItem* ui){
|
|
|
laCanvasExtra *e = ui->Extra;
|
|
|
+ la_3DViewEnsureCamera(e);
|
|
|
tnsCamera *c = e->UsingCamera ? e->UsingCamera : e->ViewingCamera;
|
|
|
int W, H;
|
|
|
W = ui->R - ui->L;
|
|
@@ -538,6 +539,15 @@ void laDefault3DViewOverlay(laUiItem *ui){
|
|
|
//laShowItemFull(gu, gcr, e, "npr_line_mode", LA_WIDGET_ENUM_CYCLE, 0, 0, 0);
|
|
|
}
|
|
|
}
|
|
|
+void la_3DViewEnsureCamera(laCanvasExtra* e){
|
|
|
+ if(e->ViewingCamera) return;
|
|
|
+ tnsVector3d pos={-15, -20, 7};
|
|
|
+ tnsCamera* c= tnsCreateCamera(0, "VIEWING_CAMERA", rad(50), LA_COLOR3(pos), rad(70), 0, rad(-40), 25);
|
|
|
+ memAssignRef(e,&e->ViewingCamera,c);
|
|
|
+ tnsVector3d target={0,0,0}; tnsVector3d up={0,0,1};
|
|
|
+ tnsLookAt(e->ViewingCamera, target, up);
|
|
|
+ e->ViewingCamera->FocusDistance=tnsDist3dv(pos,target);
|
|
|
+}
|
|
|
void la_3DViewInit(laUiItem *ui){
|
|
|
laCanvasExtra *e = ui->Extra;
|
|
|
|
|
@@ -550,12 +560,7 @@ void la_3DViewInit(laUiItem *ui){
|
|
|
ui->Extra = e;
|
|
|
e->ParentUi = ui;
|
|
|
|
|
|
- tnsVector3d pos={-15, -20, 7};
|
|
|
- tnsCamera* c= tnsCreateCamera(0, "VIEWING_CAMERA", rad(50), LA_COLOR3(pos), rad(70), 0, rad(-40), 25);
|
|
|
- memAssignRef(e,&e->ViewingCamera,c);
|
|
|
- tnsVector3d target={0,0,0}; tnsVector3d up={0,0,1};
|
|
|
- tnsLookAt(e->ViewingCamera, target, up);
|
|
|
- e->ViewingCamera->FocusDistance=tnsDist3dv(pos,target);
|
|
|
+ la_3DViewEnsureCamera(e);
|
|
|
|
|
|
e->GridSize = 10;
|
|
|
e->GridSpan = 15;
|
|
@@ -568,6 +573,9 @@ void la_3DViewInit(laUiItem *ui){
|
|
|
e->HeightCoeff = 10;
|
|
|
|
|
|
laFirstColumn(laAddTabPage(ui, "New Group"));
|
|
|
+
|
|
|
+ laRecordDifferences(0,"tns.world");
|
|
|
+ laPushDifferences("Created camera for 3D view widget,",0);
|
|
|
}
|
|
|
void la_3DViewDestroy(laUiItem *ui){
|
|
|
laCanvasExtra *e = ui->Extra;
|
|
@@ -575,7 +583,7 @@ void la_3DViewDestroy(laUiItem *ui){
|
|
|
tnsDelete2DOffscreen(e->OffScr);
|
|
|
tnsDelete2DOffscreen(e->OffScrShadow);
|
|
|
|
|
|
- tnsDestroyObject(e->ViewingCamera);
|
|
|
+ if(e->ViewingCamera) tnsDestroyObject(e->ViewingCamera);
|
|
|
|
|
|
memFree(e);
|
|
|
}
|