Browse Source

Scene类的注册模型函数增加检查要注册的模型是否赋予材质,如果没有,则new一个默认的材质并默认的材质注册到Scene,然后将这个默认的材质赋予这个模型

master
yuanjiajia 3 years ago
parent
commit
e0cd260877
  1. 13
      examples/print.php
  2. 8
      src/scene/Scene.php

13
examples/print.php

@ -119,6 +119,17 @@ $scene->registerObjects($obj); //将模型添加到场景中
//添加第二个模型 //添加第二个模型
$obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型,
$scene->registerObjects($obj); //将模型添加到场景中
$obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型,
$scene->registerObjects($obj); //将模型添加到场景中
$obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型, $obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型,
$ClearVol = new volumes\Clear(); //创建一个 Clear体积效果 $ClearVol = new volumes\Clear(); //创建一个 Clear体积效果
@ -132,8 +143,6 @@ $obj->setMaterial($colorGlass); //将玻璃材质赋值到模型的材质属
$scene->registerObjects($obj); //将模型添加到场景中 $scene->registerObjects($obj); //将模型添加到场景中
echo $scene; echo $scene;

8
src/scene/Scene.php

@ -50,6 +50,14 @@ class Scene extends BaseCfg
$temp = null; $temp = null;
$temp = sprintf("%014d",$obj->id); $temp = sprintf("%014d",$obj->id);
$obj->cards = $temp; $obj->cards = $temp;
if($obj->material == null)
{
if( !array_key_exists('__default',$this->materials ) )
{
$this->materials['__default'] = new materials\Matte();
}
$obj->material = '__default';
}
$this->objects[$temp] = $obj; $this->objects[$temp] = $obj;
} }

Loading…
Cancel
Save