If you know the normal vector and the position , you can get a rotation vector using a vector function from irrlicht :
[CODE]
Vector3 Vector3::EulerFromNormal()
{
Vector3 angle;
angle.y_ = (atan2(x_ , z_) * :M_RADTODEG);
if (angle.y_ < 0) angle.y_ += 360;
if (angle.y_ >= 360) angle.y_ -= 360;
float z1 = sqrt(x_ * x_ + z_ * z_);
angle.x_ = (atan2(z1, y_) * M_RADTODEG - 90.0f);
if (angle.x_ < 0) angle.x_ += 360;
if (angle.x_ >= 360) angle.x_ -= 360;
return angle;
}[/CODE]
Please note : Depending on your culling (CW , CCW) you may need to negate the normal to get the correct rotation.
Build a Quaternion using the returned vector (Quaternion rot(returned.x_ , returned,y_ , returned.z_);