@@ -43,8 +43,14 @@ void _createTexture(const String& name, Mat image)
43
43
case CV_8UC1:
44
44
format = PF_BYTE_L;
45
45
break ;
46
+ case CV_16UC1:
47
+ format = PF_L16;
48
+ break ;
49
+ case CV_32FC1:
50
+ format = PF_FLOAT32_R;
51
+ break ;
46
52
default :
47
- CV_Error (Error::StsBadArg, " currently only CV_8UC1, CV_8UC3, CV_8UC4 textures are supported " );
53
+ CV_Error (Error::StsBadArg, " currently supported formats are only CV_8UC1, CV_8UC3, CV_8UC4, CV_16UC1, CV_32FC1 " );
48
54
break ;
49
55
}
50
56
@@ -388,18 +394,26 @@ class WindowSceneImpl : public WindowScene
388
394
int dst_type;
389
395
switch (src_type)
390
396
{
397
+ case PF_R8:
398
+ case PF_L8:
399
+ dst_type = CV_8U;
400
+ break ;
391
401
case PF_BYTE_RGB:
392
402
dst_type = CV_8UC3;
393
403
break ;
394
404
case PF_BYTE_RGBA:
395
405
dst_type = CV_8UC4;
396
406
break ;
407
+ case PF_FLOAT32_R:
408
+ dst_type = CV_32F;
409
+ break ;
397
410
case PF_FLOAT32_RGB:
398
411
dst_type = CV_32FC3;
399
412
break ;
400
413
case PF_FLOAT32_RGBA:
401
414
dst_type = CV_32FC4;
402
415
break ;
416
+ case PF_L16:
403
417
case PF_DEPTH16:
404
418
dst_type = CV_16U;
405
419
break ;
@@ -549,6 +563,35 @@ class WindowSceneImpl : public WindowScene
549
563
node.setScale (value[0 ], value[1 ], value[2 ]);
550
564
}
551
565
566
+ void getEntityProperty (const String& name, int prop, OutputArray value)
567
+ {
568
+ SceneNode& node = _getSceneNode (sceneMgr, name);
569
+ switch (prop)
570
+ {
571
+ case ENTITY_SCALE:
572
+ {
573
+ Vector3 s = node.getScale ();
574
+ Mat_<Real>(1 , 3 , s.ptr ()).copyTo (value);
575
+ return ;
576
+ }
577
+ case ENTITY_AABB_WORLD:
578
+ {
579
+ Entity* ent = dynamic_cast <Entity*>(node.getAttachedObject (name));
580
+ CV_Assert (ent && " invalid entity" );
581
+ AxisAlignedBox aabb = ent->getWorldBoundingBox (true );
582
+ Vector3 mn = aabb.getMinimum ();
583
+ Vector3 mx = aabb.getMaximum ();
584
+ Mat_<Real> ret (2 , 3 );
585
+ Mat_<Real>(1 , 3 , mn.ptr ()).copyTo (ret.row (0 ));
586
+ Mat_<Real>(1 , 3 , mx.ptr ()).copyTo (ret.row (1 ));
587
+ ret.copyTo (value);
588
+ return ;
589
+ }
590
+ default :
591
+ CV_Error (Error::StsBadArg, " unsupported property" );
592
+ }
593
+ }
594
+
552
595
void _createBackground ()
553
596
{
554
597
String name = " _" + sceneMgr->getName () + " _DefaultBackground" ;
0 commit comments