113 lines
2.8 KiB
JavaScript
113 lines
2.8 KiB
JavaScript
|
/**
|
||
|
* GameLib.D3.API.Geometry.Normal.Extrude
|
||
|
* @param apiGeometry
|
||
|
* @param shapes
|
||
|
* @param curveSegments
|
||
|
* @param steps
|
||
|
* @param amount
|
||
|
* @param bevelEnabled
|
||
|
* @param bevelThickness
|
||
|
* @param bevelSize
|
||
|
* @param bevelSegments
|
||
|
* @param extrudePath
|
||
|
* @param frames
|
||
|
* @param UVGenerator
|
||
|
* @constructor
|
||
|
*/
|
||
|
GameLib.D3.API.Geometry.Normal.Extrude = function(
|
||
|
apiGeometry,
|
||
|
shapes,
|
||
|
curveSegments,
|
||
|
steps,
|
||
|
amount,
|
||
|
bevelEnabled,
|
||
|
bevelThickness,
|
||
|
bevelSize,
|
||
|
bevelSegments,
|
||
|
extrudePath,
|
||
|
frames,
|
||
|
UVGenerator
|
||
|
) {
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(apiGeometry)) {
|
||
|
apiGeometry = {
|
||
|
geometryType: GameLib.D3.API.Geometry.GEOMETRY_TYPE_NORMAL_EXTRUDE
|
||
|
};
|
||
|
}
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(apiGeometry.geometryType)) {
|
||
|
apiGeometry.geometryType = GameLib.D3.API.Geometry.GEOMETRY_TYPE_NORMAL_EXTRUDE;
|
||
|
}
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(shapes)) {
|
||
|
shapes = [];
|
||
|
}
|
||
|
this.shapes = shapes;
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(curveSegments)) {
|
||
|
curveSegments = 12;
|
||
|
}
|
||
|
this.curveSegments = curveSegments;
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(steps)) {
|
||
|
steps = 1;
|
||
|
}
|
||
|
this.steps = steps;
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(amount)) {
|
||
|
amount = 100;
|
||
|
}
|
||
|
this.amount = amount;
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(bevelEnabled)) {
|
||
|
bevelEnabled = true;
|
||
|
}
|
||
|
this.bevelEnabled = bevelEnabled;
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(bevelThickness)) {
|
||
|
bevelThickness = 6;
|
||
|
}
|
||
|
this.bevelThickness = bevelThickness;
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(bevelSegments)) {
|
||
|
bevelSegments = 3;
|
||
|
}
|
||
|
this.bevelSegments = bevelSegments;
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(extrudePath)) {
|
||
|
extrudePath = null;
|
||
|
}
|
||
|
this.extrudePath = extrudePath;
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(frames)) {
|
||
|
frames = null;
|
||
|
}
|
||
|
this.frames = frames;
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(UVGenerator)) {
|
||
|
UVGenerator = null;
|
||
|
}
|
||
|
this.UVGenerator = UVGenerator;
|
||
|
|
||
|
GameLib.D3.API.Geometry.Normal.call(
|
||
|
this,
|
||
|
apiGeometry,
|
||
|
apiGeometry.colors,
|
||
|
apiGeometry.lineDistances,
|
||
|
apiGeometry.morphTargets,
|
||
|
apiGeometry.morphNormals,
|
||
|
apiGeometry.skinWeights,
|
||
|
apiGeometry.skinIndices,
|
||
|
apiGeometry.verticesNeedsUpdate,
|
||
|
apiGeometry.elementsNeedUpdate,
|
||
|
apiGeometry.uvsNeedUpdate,
|
||
|
apiGeometry.normalsNeedUpdate,
|
||
|
apiGeometry.colorsNeedUpdate,
|
||
|
apiGeometry.groupsNeedUpdate,
|
||
|
apiGeometry.lineDistancesNeedUpdate
|
||
|
);
|
||
|
};
|
||
|
|
||
|
GameLib.D3.API.Geometry.Normal.Extrude.prototype = Object.create(GameLib.D3.API.Geometry.Normal.prototype);
|
||
|
GameLib.D3.API.Geometry.Normal.Extrude.prototype.constructor = GameLib.D3.API.Geometry.Normal.Extrude;
|