autoThing Thing_newFromClassName (const char32 *className, int *p_formatVersion) { try { ClassInfo classInfo = Thing_classFromClassName (className, p_formatVersion); return Thing_newFromClass (classInfo); } catch (MelderError) { Melder_throw (className, U" not created."); } }
autoRealTier RealTier_createWithClass (double tmin, double tmax, ClassInfo klas) { try { autoRealTier me = Thing_newFromClass (klas).static_cast_move <structRealTier> (); RealTier_init (me.get(), tmin, tmax); return me; } catch (MelderError) { Melder_throw (klas -> className, U" not created."); } }
RealTier RealTier_createWithClass (double tmin, double tmax, ClassInfo klas) { try { autoRealTier me = static_cast <RealTier> (Thing_newFromClass (klas)); RealTier_init (me.peek(), tmin, tmax); return me.transfer(); } catch (MelderError) { Melder_throw (klas -> className, U" not created."); } }
Daata _Data_copy (Daata me) { try { if (! me) return nullptr; autoDaata thee = static_cast <Daata> (Thing_newFromClass (my classInfo)); my v_copy (thee.peek()); Thing_setName (thee.peek(), my name); return thee.transfer(); } catch (MelderError) { Melder_throw (me, U": not copied."); } }
autoDaata _Data_copy (Daata me) { try { if (! me) return autoDaata(); autoDaata thee = Thing_newFromClass (my classInfo).static_cast_move <structDaata> (); my v_copy (thee.peek()); Thing_setName (thee.peek(), my name); return thee; } catch (MelderError) { Melder_throw (me, U": not copied."); } }
autoMatrix Matrix_appendRows (Matrix me, Matrix thee, ClassInfo klas) { try { autoMatrix him = Thing_newFromClass (klas).static_cast_move<structMatrix>(); Matrix_init (him.peek(), my xmin < thy xmin ? my xmin : thy xmin, my xmax > thy xmax ? my xmax : thy xmax, my nx > thy nx ? my nx : thy nx, my dx, my x1 < thy x1 ? my x1 : thy x1, my ymin, my ymax + (thy ymax - thy ymin), my ny + thy ny, my dy, my y1); for (long irow = 1; irow <= my ny; irow ++) for (long icol = 1; icol <= my nx; icol ++) his z [irow] [icol] = my z [irow] [icol]; for (long irow = 1; irow <= thy ny; irow ++) for (long icol = 1; icol <= thy nx; icol ++) his z [irow + my ny] [icol] = thy z [irow] [icol]; return him; } catch (MelderError) { Melder_throw (me, U" & ", thee, U": rows not appended."); } }