| 480 | |
| 481 | template <typename Schema> |
| 482 | typename Schema::IfcSurfaceStyle* getSurfaceStyle(IfcHierarchyHelper<Schema>& file, double r, double g, double b, double a = 1.0) { |
| 483 | typename Schema::IfcColourRgb* colour = new typename Schema::IfcColourRgb(boost::none, r, g, b); |
| 484 | typename Schema::IfcSurfaceStyleRendering* rendering = a == 1.0 |
| 485 | ? new typename Schema::IfcSurfaceStyleRendering(colour, boost::none, 0, 0, 0, 0, 0, 0, Schema::IfcReflectanceMethodEnum::IfcReflectanceMethod_FLAT) |
| 486 | : new typename Schema::IfcSurfaceStyleRendering(colour, 1.0 - a, 0, 0, 0, 0, 0, 0, Schema::IfcReflectanceMethodEnum::IfcReflectanceMethod_FLAT); |
| 487 | |
| 488 | typename Schema::IfcSurfaceStyleElementSelect::list::ptr styles(new typename Schema::IfcSurfaceStyleElementSelect::list); |
| 489 | styles->push(rendering); |
| 490 | typename Schema::IfcSurfaceStyle* surface_style = new typename Schema::IfcSurfaceStyle( |
| 491 | boost::none, Schema::IfcSurfaceSide::IfcSurfaceSide_BOTH, styles); |
| 492 | |
| 493 | file.addEntity(colour); |
| 494 | file.addEntity(rendering); |
| 495 | file.addEntity(surface_style); |
| 496 | |
| 497 | return surface_style; |
| 498 | } |
| 499 | |
| 500 | template <typename Schema> |
| 501 | typename Schema::IfcPresentationStyleAssignment* addStyleAssignment_2x3(IfcHierarchyHelper<Schema>& file, double r, double g, double b, double a = 1.0) { |