classes/model/components/AreaLoads/AreaLoad.js

class AreaLoad {
	/**
	 * @description Creates an instance of the SkyCiv AreaLoad class.
	 * @param {"one_way"|"two_way"|"column_wind_load"|"open_structure"} type How the area load should distribute the load.
	 * @param {number[]} nodes The IDs of the nodes which define the area for loading. Specify 3 or 4 values, in sequential order (clockwise or counterclockwise direction).
	 * @param {number} mag The magnitude of the load, in the units of pressure.
	 * @param {"X"|"Y"|"Z"} direction The direction of the load in the global axes.
	 * @param {string} elevations Relevant only if "type": "column_wind_load".The elevations between which the corresponding pressure magnitudes(see next row in this table) should be applied.This property should have 1 more value than the corresponding pressure magnitudes property.
	 * @param {string} mags Relevant only if "type": "column_wind_load".The magnitudes of pressures which should be applied between the corresponding elevations(see above row in this table).This property should have 1 less value than the corresponding elevations property.
	 * @param {string} column_direction Relevant only if "type": "one_way" or "type": "column_wind_load".The span direction of the applied area load.The values must be the IDs of 2 nodes which are in the nodes property.
	 * @param {"all"| "major"} loaded_members_axis Relevant only if "type": "open_structure".Whether to apply the open structure load to all members attaching to the nodes(indicated by all), or to only those members which lie along the global XYZ axes(indicated by major).
	 * @param {string} LG The load group to which this area load belongs.
	 */
	constructor(
		type,
		nodes,
		mag,
		direction,
		elevations = null,
		mags = null,
		column_direction = null,
		loaded_members_axis = null,
		LG = null
	) {
		this.type = type;
		this.nodes = nodes;
		this.mag = mag;
		this.direction = direction;
		this.elevations = elevations;
		this.mags = mags;
		this.column_direction = column_direction;
		this.loaded_members_axis = loaded_members_axis;
		this.LG = LG;
	}
}

module.exports = AreaLoad;