Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove face4 #197

Open
wants to merge 34 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
fe820e1
Update CircleGeometry
brason Mar 30, 2015
2c208b0
Update ConvexGeometry
brason Mar 30, 2015
bf998e6
Update CubeGeometry
brason Mar 30, 2015
94e88c5
Update CylinderGeometry
brason Mar 30, 2015
0cfcc3c
Update ExtrudeGeometry
brason Mar 30, 2015
ed67669
Cleanup IcosahedronGeometry
brason Mar 30, 2015
9aee3bc
Update LatheGeometry
brason Mar 30, 2015
813d562
Update ParametricGeometry and add factory constructors for creating d…
brason Mar 30, 2015
85dac17
Update PlaneGeometry
brason Mar 30, 2015
ef0ae8e
Replace UV in PolyhedronGeometry
brason Mar 30, 2015
da2e55c
Add RingGeometry
brason Mar 30, 2015
e529e08
Update ShapeGeometry
brason Mar 30, 2015
b5d0d55
Update SphereGeometry
brason Mar 30, 2015
f9fef0a
Small adjustment to TextGeometry
brason Mar 30, 2015
0836615
Update TorusGeometry
brason Mar 30, 2015
a40645e
Update TorusKnotGeometry
brason Mar 30, 2015
6a7fbfd
Update Shape
brason Mar 30, 2015
73a06af
Add Curve.create for creating classes with custom getPoint function
brason Mar 30, 2015
4025dc2
Add CurveExtras
brason Mar 30, 2015
2997e06
Update TubeGeometry
brason Mar 30, 2015
8cc1015
Update AxisHelper
brason Mar 30, 2015
4132e7c
Replace UV and add clone method to Geometry
brason Mar 30, 2015
038e7ea
Remove use of Face4 and fix variables using UV
brason Mar 30, 2015
080dae5
Delete face4.dart, uv.dart and remove references
brason Mar 30, 2015
0255e19
Add reference to RingGeometry
brason Mar 30, 2015
d557d3d
Replace UV in geometry_utils, projector and obj_loader
brason Mar 30, 2015
3bad375
Update JSONLoader
brason Mar 30, 2015
f510824
Update web_gl_geometry_shapes example
brason Mar 30, 2015
4da47c7
Delete outdated example
brason Mar 30, 2015
bfd52e2
Add new webgl_geometries2 example
brason Mar 30, 2015
6586216
Update web_gl_geometries example
brason Mar 30, 2015
76f4c28
Update web_gl_geometry_extrude_shapes example
brason Mar 30, 2015
4ab7b1e
Small adjustment to examples
brason Mar 30, 2015
0c8098c
Remove RenderableFace4
brason Apr 1, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ var uniforms, amplitude, opacity, color;
var attributes, displacement, customColor;

var text = "three.dart",
height = 15.0,
height = 15,
size = 50,

curveSegments = 10,
steps = 40,

bevelThickness = 5,
bevelThickness = 5.0,
bevelSize = 1.5,
bevelSegments = 10,
bevelEnabled = true,
Expand Down Expand Up @@ -88,7 +88,6 @@ void init() {
curveSegments,
1,
null,
null,
0,
1,
size,
Expand Down
Binary file added example/web_gl_geometries/UV_Grid_Sm.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed example/web_gl_geometries/textures/ash_uvgrid01.jpg
Binary file not shown.
177 changes: 74 additions & 103 deletions example/web_gl_geometries/web_gl_geometries.dart
Original file line number Diff line number Diff line change
@@ -1,135 +1,107 @@
/*
* Based on r70
*/

import 'dart:html';
import 'dart:math' as Math;
import 'package:vector_math/vector_math.dart';
import 'package:three/three.dart';
import 'package:vector_math/vector_math.dart';
import 'package:three/extras/image_utils.dart' as ImageUtils;
import 'package:three/extras/scene_utils.dart' as SceneUtils;

Element container;

DivElement container;
WebGLRenderer renderer;
PerspectiveCamera camera;
Scene scene;
WebGLRenderer renderer;


void main() {
init();
animate(0);
}

void init() {
container = new DivElement();
document.body.append(container);

container = new Element.tag('div');
document.body.nodes.add(container);

camera = new PerspectiveCamera(45.0, window.innerWidth / window.innerHeight, 1.0, 2000.00);
camera.position.y = 400.0;

camera = new PerspectiveCamera(45.0, window.innerWidth / window.innerHeight, 1.0, 2000.0)
..position.y = 400.0;

scene = new Scene();

scene.add(new AmbientLight(0x404040));

var light = new DirectionalLight(0xffffff);
light.position.setValues(0.0, 1.0, 0.0);
scene.add(light);

Texture map = ImageUtils.loadTexture('textures/ash_uvgrid01.jpg');

var map = ImageUtils.loadTexture('UV_Grid_Sm.jpg');
map.wrapS = map.wrapT = RepeatWrapping;
map.anisotropy = 16;

var materials = [
new MeshLambertMaterial(ambient: 0xbbbbbb, map: map, side: DoubleSide),
new MeshBasicMaterial(color: 0xffffff, wireframe: true, transparent: true, opacity: 0.1, side: DoubleSide)];

var object = SceneUtils.createMultiMaterialObject(new CubeGeometry(100.0, 100.0, 100.0, 4, 4, 4), materials);
object.position.setValues(-200.0, 0.0, 400.0);
scene.add(object);


object = SceneUtils.createMultiMaterialObject(new CylinderGeometry(25.0, 75.0, 100.0, 40, 5), materials);
object.position.setValues(0.0, 0.0, 400.0);
scene.add(object);

object = SceneUtils.createMultiMaterialObject(new IcosahedronGeometry(75.0, 1), materials);
object.position.setValues(-200.0, 0.0, 200.0);
scene.add(object);

object = SceneUtils.createMultiMaterialObject(new OctahedronGeometry(75.0, 2), materials);
object.position.setValues(0.0, 0.0, 200.0);
scene.add(object);


object = SceneUtils.createMultiMaterialObject(new TetrahedronGeometry(75.0, 0), materials);
object.position.setValues(200.0, 0.0, 200.0);
scene.add(object);

object = SceneUtils.createMultiMaterialObject(new PlaneGeometry(100.0, 100.0, 4, 4), materials);
object.position.setValues(-200.0, 0.0, 0.0);
scene.add(object);

var object2 = SceneUtils.createMultiMaterialObject(new CircleGeometry(50, 10, 0, Math.PI), materials);
object2.rotation.x = Math.PI / 2;
object.add(object2);

object = SceneUtils.createMultiMaterialObject(new SphereGeometry(75.0, 20, 10), materials);
object.position.setValues(0.0, 0.0, 0.0);
scene.add(object);


var points = [];

for (var i = 0; i < 50; i++) {

points.add(new Vector3(Math.sin(i * 0.2) * 15.0 + 50.0, 0.0, (i - 5) * 2.0));

}

object = SceneUtils.createMultiMaterialObject(new LatheGeometry(points, 20), materials);
object.position.setValues(200.0, 0.0, 0.0);
scene.add(object);

object = SceneUtils.createMultiMaterialObject(new TorusGeometry(50, 20, 20, 20), materials);
object.position.setValues(-200.0, 0.0, -200.0);
scene.add(object);

object = SceneUtils.createMultiMaterialObject(new TorusKnotGeometry(50.0, 10.0, 50, 20), materials);
object.position.setValues(0.0, 0.0, -200.0);
scene.add(object);

object = new AxisHelper();
object.position.setValues(200.0, 0.0, -200.0);
object.scale.x = object.scale.y = object.scale.z = 0.5;
scene.add(object);


object = new ArrowHelper(new Vector3(0.0, 1.0, 0.0), new Vector3.zero(), 50.0);
object.position.setValues(200.0, 0.0, 400.0);
scene.add(object);

renderer = new WebGLRenderer(); // TODO - {antialias: true}
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.sortObjects = false;

container.nodes.add(renderer.domElement);

var material = new MeshLambertMaterial(ambient: 0xbbbbbb, map: map, side: DoubleSide);

scene.add(new Mesh(new SphereGeometry(75.0, 20, 10), material)
..position.setValues(-400.0, 0.0, 200.0));

scene.add(new Mesh(new IcosahedronGeometry(75.0, 1), material)
..position.setValues(-200.0, 0.0, 200.0));

scene.add(new Mesh(new OctahedronGeometry(75.0, 2), material)
..position.setValues(0.0, 0.0, 200.0));

scene.add(new Mesh(new TetrahedronGeometry(75.0, 0), material)
..position.setValues(200.0, 0.0, 200.0));

scene.add(new Mesh(new PlaneGeometry(100.0, 100.0, 4, 4), material)
..position.setValues(-400.0, 0.0, 0.0));

scene.add(new Mesh(new CubeGeometry(100.0, 100.0, 100.0, 4, 4, 4), material)
..position.setValues(-200.0, 0.0, 0.0));

scene.add(new Mesh(new CircleGeometry(50.0, 20, 0.0, Math.PI * 2), material)
..position.setValues(0.0, 0.0, 0.0));

scene.add(new Mesh(new RingGeometry(10.0, 50.0, 20, 5, 0.0, Math.PI * 2), material)
..position.setValues(200.0, 0.0, 0.0));

scene.add(new Mesh(new CylinderGeometry(25.0, 75.0, 100.0, 40, 5), material)
..position.setValues(400.0, 0.0, 0.0));

var points = new List.generate(50, (i) =>
new Vector3(Math.sin(i * 0.2) * Math.sin(i * 0.1) * 15 + 50, 0.0, (i - 5) * 2.0));

scene.add(new Mesh(new LatheGeometry(points, 20), material)
..position.setValues(-400.0, 0.0, -200.0));

scene.add(new Mesh(new TorusGeometry(50.0, 20.0, 20, 20), material)
..position.setValues(-200.0, 0.0, -200.0));

scene.add(new Mesh(new TorusKnotGeometry(50.0, 10.0, 50, 20), material)
..position.setValues(0.0, 0.0, -200.0));

scene.add(new DirectionalLight(0xffffff)
..position.setValues(0.0, 1.0, 0.0));

scene.add(new AmbientLight(0x404040));

//scene.add(new AxisHelper(50.0)..position.setValues(200.0, 0.0, -200.0));

scene.add(new ArrowHelper(new Vector3(0.0, 1.0, 0.0), new Vector3.zero(), 50.0)
..position.setValues(400.0, 0.0, -200.0));

renderer = new WebGLRenderer()
..setSize(window.innerWidth, window.innerHeight);
container.append(renderer.domElement);

window.onResize.listen(onWindowResize);
}

onWindowResize(event) {

void onWindowResize(Event e) {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();

renderer.setSize(window.innerWidth, window.innerHeight);
}

animate(num time) {
void animate(num time) {
window.requestAnimationFrame(animate);
render();
}

render() {

void render() {
var timer = new DateTime.now().millisecondsSinceEpoch * 0.0001;

camera.position.x = Math.cos(timer) * 800.0;
Expand All @@ -141,7 +113,6 @@ render() {
object.rotation.x = timer * 5.0;
object.rotation.y = timer * 2.5;
});

renderer.render(scene, camera);

}
}
Binary file added example/web_gl_geometries2/UV_Grid_Sm.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
109 changes: 109 additions & 0 deletions example/web_gl_geometries2/webgl_geometries2.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
/*
* Based on r70
*/

import 'dart:html';
import 'dart:math' as Math;
import 'package:three/three.dart';
import 'package:vector_math/vector_math.dart';
import 'package:three/extras/image_utils.dart' as ImageUtils;
import 'package:three/extras/scene_utils.dart' as SceneUtils;
import 'package:three/extras/curve_extras.dart' as Curves;

DivElement container;
WebGLRenderer renderer;
PerspectiveCamera camera;
Scene scene;

void main() {
init();
animate(0);
}

void init() {
container = new DivElement();
document.body.append(container);

camera = new PerspectiveCamera(45.0, window.innerWidth / window.innerHeight, 1.0, 2000.0)
..position.y = 400.0;

scene = new Scene();

var map = ImageUtils.loadTexture('UV_Grid_Sm.jpg');
map.wrapS = map.wrapT = RepeatWrapping;
map.anisotropy = 16;

var materials =
[new MeshLambertMaterial(ambient: 0xbbbbbb, map: map, side: DoubleSide),
new MeshBasicMaterial(color: 0xffffff, wireframe: true, transparent: true, opacity: 0.1, side: DoubleSide)];

var torus2 = new ParametricGeometry.torusKnot(radius: 150.0, tube: 10.0,
segmentsR: 50, segmentsT: 20, p: 2.0 , q: 3.0, heightScale: 1.0);

var sphere2 = new ParametricGeometry.sphere(75.0, 20, 10);
var tube2 = new ParametricGeometry.tube(new Curves.GrannyKnot(), segments: 150, radius: 2.0, closed: true);

scene.add(SceneUtils.createMultiMaterialObject(new ParametricGeometry.klein(20, 20), materials)
..position.setZero()
..scale.scale(10.0));

scene.add(SceneUtils.createMultiMaterialObject(new ParametricGeometry.mobius(20, 20), materials)
..position.setValues(10.0, 0.0, 0.0)
..scale.scale(100.0));

scene.add(SceneUtils.createMultiMaterialObject(new ParametricGeometry.plane(200.0, 200.0, 10, 20), materials));

scene.add(SceneUtils.createMultiMaterialObject(torus2, materials)
..position.setValues(0.0, 100.0, 0.0));

scene.add(SceneUtils.createMultiMaterialObject(sphere2, materials)
..position.setValues(200.0, 0.0, 0.0));

scene.add(SceneUtils.createMultiMaterialObject(tube2, materials)
..position.setValues(100.0, 0.0, 0.0));

scene.add(new AxisHelper(50.0)..position.setValues(200.0, 0.0, -200.0));

scene.add(new ArrowHelper(new Vector3(0.0, 1.0, 0.0), new Vector3.zero(), 50.0)
..position.setValues(200.0, 0.0, 400.0));

scene.add(new AmbientLight(0x404040));

scene.add(new DirectionalLight(0xffffff)
..position = new Vector3(0.0, 0.0, 1.0));

renderer = new WebGLRenderer()
..setSize(window.innerWidth, window.innerHeight);

container.append(renderer.domElement);

window.onResize.listen(onWindowResize);
}

void onWindowResize(Event e) {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();

renderer.setSize(window.innerWidth, window.innerHeight);
}

void animate(num time) {
window.requestAnimationFrame(animate);
render();
}

void render() {
var timer = new DateTime.now().millisecondsSinceEpoch * 0.0001;

camera.position.x = Math.cos(timer) * 800.0;
camera.position.z = Math.sin(timer) * 800.0;

camera.lookAt(scene.position);

scene.children.forEach((object) {
object.rotation.x = timer * 5.0;
object.rotation.y = timer * 2.5;
});

renderer.render(scene, camera);
}
20 changes: 20 additions & 0 deletions example/web_gl_geometries2/webgl_geometries2.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<title>three.dart webgl - geometries</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<style>
body {
font-family: Monospace;
background-color: #000;
margin: 0px;
overflow: hidden;
}
</style>
</head>
<body>
<script type="application/dart" src="webgl_geometries2.dart"></script>
<script src="packages/browser/dart.js"></script>
</body>
</html>
Loading