AxisCreateInfo/CubeCreateInfo增加新的构造函数,直接支持AABB

This commit is contained in:
hyzboy 2020-06-03 17:39:36 +08:00
parent 51780a68ee
commit 043d5608d0
3 changed files with 36 additions and 19 deletions

View File

@ -131,20 +131,14 @@ private:
} }
{ {
AxisCreateInfo aci; AxisCreateInfo aci(model_data->bounding_box);
aci.root=model_data->bounding_box.CenterPoint().xyz();
aci.size=model_data->bounding_box.HalfSize().xyz();
axis_renderable=CreateRenderableAxis(db,material,&aci); axis_renderable=CreateRenderableAxis(db,material,&aci);
axis_renderable_instance=db->CreateRenderableInstance(pipeline_lines,material_instance,axis_renderable); axis_renderable_instance=db->CreateRenderableInstance(pipeline_lines,material_instance,axis_renderable);
} }
{ {
CubeCreateInfo cci; CubeCreateInfo cci(model_data->bounding_box);
cci.center=model_data->bounding_box.CenterPoint().xyz();
cci.size=model_data->bounding_box.Size().xyz();
bbox_renderable=CreateRenderableBoundingBox(db,material,&cci); bbox_renderable=CreateRenderableBoundingBox(db,material,&cci);
bbox_renderable_instance=db->CreateRenderableInstance(pipeline_lines,material_instance,bbox_renderable); bbox_renderable_instance=db->CreateRenderableInstance(pipeline_lines,material_instance,bbox_renderable);

View File

@ -130,20 +130,14 @@ private:
} }
{ {
AxisCreateInfo aci; AxisCreateInfo aci(model_data->bounding_box);
aci.root=model_data->bounding_box.CenterPoint().xyz();
aci.size=model_data->bounding_box.HalfSize().xyz();
axis_renderable=CreateRenderableAxis(db,material,&aci); axis_renderable=CreateRenderableAxis(db,material,&aci);
axis_renderable_instance=db->CreateRenderableInstance(pipeline_lines,material_instance,axis_renderable); axis_renderable_instance=db->CreateRenderableInstance(pipeline_lines,material_instance,axis_renderable);
} }
{ {
CubeCreateInfo cci; CubeCreateInfo cci(model_data->bounding_box);
cci.center=model_data->bounding_box.CenterPoint().xyz();
cci.size=model_data->bounding_box.Size().xyz();
bbox_renderable=CreateRenderableBoundingBox(db,material,&cci); bbox_renderable=CreateRenderableBoundingBox(db,material,&cci);
bbox_renderable_instance=db->CreateRenderableInstance(pipeline_lines,material_instance,bbox_renderable); bbox_renderable_instance=db->CreateRenderableInstance(pipeline_lines,material_instance,bbox_renderable);

View File

@ -96,12 +96,24 @@ namespace hgl
public: public:
void Set(const AABB &box)
{
center=box.CenterPoint().xyz();
size=box.HalfSize().xyz();
}
CubeCreateInfo() CubeCreateInfo()
{ {
center.Set(0,0,0); center.Set(0,0,0);
size.Set(1,1,1); size.Set(1,1,1);
tile.Set(1,1); tile.Set(1,1);
} }
CubeCreateInfo(const AABB &box)
{
Set(box);
tile.Set(1,1);
}
};//struct CubeCreateInfo };//struct CubeCreateInfo
/** /**
@ -177,13 +189,30 @@ namespace hgl
public: public:
void RestartColor()
{
color[0].Set(1,0,0,1);
color[1].Set(0,1,0,1);
color[2].Set(0,0,1,1);
}
void Set(const AABB &box)
{
root=box.CenterPoint().xyz();
size=box.HalfSize().xyz();
}
AxisCreateInfo() AxisCreateInfo()
{ {
root.Set(0,0,0); root.Set(0,0,0);
size.Set(1,1,1); size.Set(1,1,1);
color[0].Set(1,0,0,1); RestartColor();
color[1].Set(0,1,0,1); }
color[2].Set(0,0,1,1);
AxisCreateInfo(const AABB &box)
{
Set(box);
RestartColor();
} }
};//struct AxisCreateInfo };//struct AxisCreateInfo