Parcourir la source

Add all extrude parameters

Temdog007 il y a 6 ans
Parent
commit
f04b450af2
2 fichiers modifiés avec 94 ajouts et 15 suppressions
  1. 93 15
      editor/js/Sidebar.Geometry.ExtrudeGeometry.js
  2. 1 0
      editor/js/Strings.js

+ 93 - 15
editor/js/Sidebar.Geometry.ExtrudeGeometry.js

@@ -2,7 +2,7 @@
  * @author Temdog007 / http://github.com/Temdog007
  * @author Temdog007 / http://github.com/Temdog007
  */
  */
 
 
-Sidebar.Geometry.BoxGeometry = function ( editor, object ) {
+Sidebar.Geometry.ExtrudeGeometry = function ( editor, object ) {
 
 
 	var strings = editor.strings;
 	var strings = editor.strings;
 
 
@@ -12,21 +12,20 @@ Sidebar.Geometry.BoxGeometry = function ( editor, object ) {
 
 
 	var geometry = object.geometry;
 	var geometry = object.geometry;
 	var parameters = geometry.parameters;
 	var parameters = geometry.parameters;
-	var options = parameters.options || {
-		curveSegments : 12,
-		steps : 1,
-		depth : 100,
-		bevelEnabled : true,
-		bevelThickness : 6,
-		bevelSize : 4,
-		bevelOffset : 0,
-		bevelSegments : 3
-	};
+	var options = parameters.options; 
+	options.curveSegments = options.curveSegments != undefined ? options.curveSegments :  12;
+	options.steps = options.steps != undefined ? options.steps : 1;
+	options.depth = options.depth != undefined ? options.depth : 100;
+		options.bevelThickness =options.bevelThickness !== undefined ? options.bevelThickness : 6;
+		options.bevelSize = options.bevelSize !== undefined ? options.bevelSize : 4;
+		options.bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;
+		options.bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3
+	
 
 
 	// curveSegments
 	// curveSegments
 
 
 	var curveSegmentsRow = new UI.Row();
 	var curveSegmentsRow = new UI.Row();
-	var curveSegments = new UI.Number( options.curveSegments ).onChange( update ).setRange(1, Infinity);
+	var curveSegments = new UI.Integer( options.curveSegments ).onChange( update ).setRange(1, Infinity);
 
 
 	curveSegmentsRow.add( new UI.Text( strings.getKey( 'sidebar/geometry/extrude_geometry/curveSegments' ) ).setWidth( '90px' ) );
 	curveSegmentsRow.add( new UI.Text( strings.getKey( 'sidebar/geometry/extrude_geometry/curveSegments' ) ).setWidth( '90px' ) );
 	curveSegmentsRow.add( curveSegments );
 	curveSegmentsRow.add( curveSegments );
@@ -36,13 +35,79 @@ Sidebar.Geometry.BoxGeometry = function ( editor, object ) {
 	// steps
 	// steps
 
 
 	var stepsRow = new UI.Row();
 	var stepsRow = new UI.Row();
-	var steps = new UI.Number( options.steps ).onChange( update ).setRange(1, Infinity);
+	var steps = new UI.Integer( options.steps ).onChange( update ).setRange(1, Infinity);
 
 
 	stepsRow.add( new UI.Text( strings.getKey( 'sidebar/geometry/extrude_geometry/steps' ) ).setWidth( '90px' ) );
 	stepsRow.add( new UI.Text( strings.getKey( 'sidebar/geometry/extrude_geometry/steps' ) ).setWidth( '90px' ) );
 	stepsRow.add( steps );
 	stepsRow.add( steps );
 
 
 	container.add( stepsRow );
 	container.add( stepsRow );
 
 
+	// depth
+
+	var depthRow = new UI.Row();
+	var depth = new UI.Number( options.depth ).onChange( update ).setRange(1, Infinity);
+
+	depthRow.add( new UI.Text( strings.getKey( 'sidebar/geometry/extrude_geometry/depth' ) ).setWidth( '90px' ) );
+	depthRow.add( depth );
+
+	container.add( depthRow );
+
+	// enabled
+
+	var enabledRow = new UI.Row();
+	var enabled = new UI.Checkbox( options.bevelEnabled  ).onChange( update );
+
+	enabledRow.add( new UI.Text( strings.getKey( 'sidebar/geometry/extrude_geometry/bevelEnabled' ) ).setWidth( '90px' ) );
+	enabledRow.add( enabled );
+
+	container.add( enabledRow );
+
+	if(options.bevelEnabled === true){
+
+		// thickness
+
+		var thicknessRow = new UI.Row();
+		var thickness = new UI.Number( options.bevelThickness  ).onChange( update );
+
+		thicknessRow.add( new UI.Text( strings.getKey( 'sidebar/geometry/extrude_geometry/bevelThickness' ) ).setWidth( '90px' ) );
+		thicknessRow.add( thickness );
+
+		container.add( thicknessRow );
+
+		// size
+
+		var sizeRow = new UI.Row();
+		var size = new UI.Number( options.bevelSize  ).onChange( update );
+
+		sizeRow.add( new UI.Text( strings.getKey( 'sidebar/geometry/extrude_geometry/bevelSize' ) ).setWidth( '90px' ) );
+		sizeRow.add( size );
+
+		container.add( sizeRow );
+
+		// offset
+
+		var offsetRow = new UI.Row();
+		var offset = new UI.Number( options.bevelOffset  ).onChange( update );
+
+		offsetRow.add( new UI.Text( strings.getKey( 'sidebar/geometry/extrude_geometry/bevelOffset' ) ).setWidth( '90px' ) );
+		offsetRow.add( offset );
+
+		container.add( offsetRow );
+
+		// segments
+
+		var segmentsRow = new UI.Row();
+		var segments = new UI.Integer( options.bevelSegments  ).onChange( update ).setRange(0, Infinity);
+
+		segmentsRow.add( new UI.Text( strings.getKey( 'sidebar/geometry/extrude_geometry/bevelSegments' ) ).setWidth( '90px' ) );
+		segmentsRow.add( segments );
+
+		container.add( segmentsRow );
+	}
+
+	var button = new UI.Button(strings.getKey( 'sidebar/geometry/extrude_geometry/shape' )).onClick(toShape).setWidth('90px').setMarginLeft('90px');
+	container.add(button);
+
 	//
 	//
 
 
 	function update() {
 	function update() {
@@ -51,14 +116,27 @@ Sidebar.Geometry.BoxGeometry = function ( editor, object ) {
 			parameters.shapes,
 			parameters.shapes,
 			{
 			{
 				curveSegments : curveSegments.getValue(),
 				curveSegments : curveSegments.getValue(),
-				steps : steps.getValue()
+				steps : steps.getValue(),
+				depth: depth.getValue(),
+				bevelEnabled : enabled.getValue(),
+				bevelThickness : thickness !== undefined ? thickness.getValue() : options.bevelThickness,
+				bevelSize : size !== undefined ? size.getValue() : options.bevelSize,
+				bevelOffset : offset !== undefined ? offset.getValue() : options.bevelOffset,
+				bevelSegments : segments !== undefined ? segments.getValue() : options.bevelSegments
 			}
 			}
 		) ) );
 		) ) );
 
 
 	}
 	}
 
 
+	function toShape() {
+		editor.execute( new SetGeometryCommand( object, new THREE.ShapeBufferGeometry(
+			parameters.shapes,
+			options.curveSegments
+		)));
+	}
+
 	return container;
 	return container;
 
 
 };
 };
 
 
-Sidebar.Geometry.BoxBufferGeometry = Sidebar.Geometry.BoxGeometry;
+Sidebar.Geometry.ExtrudeBufferGeometry = Sidebar.Geometry.ExtrudeGeometry;

+ 1 - 0
editor/js/Strings.js

@@ -143,6 +143,7 @@ var Strings = function ( config ) {
 			'sidebar/geometry/extrude_geometry/bevelSize': 'Size',
 			'sidebar/geometry/extrude_geometry/bevelSize': 'Size',
 			'sidebar/geometry/extrude_geometry/bevelOffset': 'Offset',
 			'sidebar/geometry/extrude_geometry/bevelOffset': 'Offset',
 			'sidebar/geometry/extrude_geometry/bevelSegments': 'Segments',
 			'sidebar/geometry/extrude_geometry/bevelSegments': 'Segments',
+			'sidebar/geometry/extrude_geometry/shape': 'Convert to Shape',
 
 
 			'sidebar/geometry/geometry/vertices': 'Vertices',
 			'sidebar/geometry/geometry/vertices': 'Vertices',
 			'sidebar/geometry/geometry/faces': 'Faces',
 			'sidebar/geometry/geometry/faces': 'Faces',