bool process_colour(Ifc2x3::IfcColourOrFactor colour_or_factor, std::tr1::array<double, 3>& rgb) { if (colour_or_factor == 0) { return false; } else if (colour_or_factor->is(Ifc2x3::Type::IfcColourRgb)) { return process_colour(static_cast<Ifc2x3::IfcColourRgb*>(colour_or_factor), rgb); } else if (colour_or_factor->is(Ifc2x3::Type::IfcNormalisedRatioMeasure)) { return process_colour(static_cast<IfcUtil::IfcArgumentSelect*>(colour_or_factor), rgb); } else { return false; } }
bool process_colour(IfcSchema::IfcColourOrFactor* colour_or_factor, double* rgb) { if (colour_or_factor == 0) { return false; } else if (colour_or_factor->is(IfcSchema::Type::IfcColourRgb)) { return process_colour(static_cast<IfcSchema::IfcColourRgb*>(colour_or_factor), rgb); } else if (colour_or_factor->is(IfcSchema::Type::IfcNormalisedRatioMeasure)) { return process_colour(static_cast<IfcSchema::IfcNormalisedRatioMeasure*>(colour_or_factor), rgb); } else { return false; } }