Skip to content

Commit e2f3c7f

Browse files
committed
IMP: unknown
1 parent 41061fa commit e2f3c7f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+115
-16
lines changed

.gitignore

100644100755
File mode changed.

.settings/org.eclipse.core.resources.prefs

100644100755
File mode changed.

odoo/addons/3dCad/__init__.py

100644100755
File mode changed.

odoo/addons/3dCad/__manifest__.py

100644100755
File mode changed.

odoo/addons/3dCad/controllers/__init__.py

100644100755
File mode changed.
Binary file not shown.

odoo/addons/3dCad/controllers/controller.py

100644100755
+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
class Main(http.Controller):
77

8+
#localhost:8069/3dCad/render/1
89
@http.route('/3dCad/render/<product_id>', methods=['GET'], auth='user', website=True)
910
def render(self, product_id, **kwargs):
1011
return request.render("3dCad.threejs_main_view", {'main_product_product_id': product_id})

odoo/addons/3dCad/models/__init__.py

100644100755
File mode changed.

odoo/addons/3dCad/models/__pycache__/product_product.cpython-35.pyc

100644100755
File mode changed.

odoo/addons/3dCad/models/product_product.py

100644100755
File mode changed.

odoo/addons/3dCad/static/js/four.css

100644100755
File mode changed.

odoo/addons/3dCad/static/js/four.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/Globals.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/KeyCommandController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/PathPlanner.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/Scene.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/SceneIndex.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/SceneIndex2.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/SceneIndex3.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/SceneIndex4.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/TargetCamera.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/TransformController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/Viewport3D.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/css/four.css

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/helpers/Overlay.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/helpers/ViewAxis.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/helpers/Viewcube.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/128/back.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/128/bottom.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/128/front.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/128/left.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/128/right.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/128/top.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/64/back.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/64/bottom.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/64/front.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/64/left.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/64/right.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/64/top.png

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/img/threejs-viewcube.xcf

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/navigation/ArrowController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/navigation/LookController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/navigation/MultiController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/navigation/PanController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/navigation/RotateController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/navigation/TourController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/navigation/WalkController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/navigation/ZoomController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/selection/BoundingBox.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/selection/ClickSelectionController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/selection/HoverSelectionController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/selection/MarqueeSelectionController.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/selection/SelectionSet.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/workers/GeneticPlanner.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/workers/SceneIndexer.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libFour/workers/SimulatedAnnealer.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libs/EventsControls.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libs/OrbitControls.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libs/STLLoader.js

100644100755
+11-11
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,18 @@ THREE.STLLoader.prototype = {
4040

4141
constructor: THREE.STLLoader,
4242

43-
load: function ( url, onLoad, onProgress, onError ) {
43+
load: function ( url, data, onLoad, onProgress, onError ) {
4444

45-
var scope = this;
45+
var scope = this;
46+
scope.url = url;
47+
scope.data = data;
4648

4749
var loader = new THREE.FileLoader( scope.manager );
4850
loader.setPath( scope.path );
4951
loader.setResponseType( 'arraybuffer' );
5052
loader.load( url, function ( text ) {
51-
5253
try {
53-
54-
onLoad( scope.parse( text ) );
54+
onLoad( scope.parse( text, scope.data) );
5555

5656
} catch ( exception ) {
5757

@@ -74,7 +74,7 @@ THREE.STLLoader.prototype = {
7474

7575
},
7676

77-
parse: function ( data ) {
77+
parse: function ( data, creationData ) {
7878

7979
function isBinary( data ) {
8080

@@ -217,7 +217,8 @@ THREE.STLLoader.prototype = {
217217
}
218218

219219
geometry.addAttribute( 'position', new THREE.BufferAttribute( new Float32Array( vertices ), 3 ) );
220-
geometry.addAttribute( 'normal', new THREE.BufferAttribute( new Float32Array( normals ), 3 ) );
220+
geometry.addAttribute( 'normal', new THREE.BufferAttribute( new Float32Array( normals ), 3 ) );
221+
221222

222223
if ( hasColors ) {
223224

@@ -226,7 +227,6 @@ THREE.STLLoader.prototype = {
226227
geometry.alpha = alpha;
227228

228229
}
229-
230230
return geometry;
231231

232232
}
@@ -294,7 +294,6 @@ THREE.STLLoader.prototype = {
294294

295295
geometry.addAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
296296
geometry.addAttribute( 'normal', new THREE.Float32BufferAttribute( normals, 3 ) );
297-
298297
return geometry;
299298

300299
}
@@ -334,8 +333,9 @@ THREE.STLLoader.prototype = {
334333
// start
335334

336335
var binData = ensureBinary( data );
337-
338-
return isBinary( binData ) ? parseBinary( binData ) : parseASCII( ensureString( data ) );
336+
var geometry = isBinary( binData ) ? parseBinary( binData ) : parseASCII( ensureString( data ) );
337+
geometry.creationData = creationData;
338+
return geometry;
339339

340340
}
341341

odoo/addons/3dCad/static/js/libs/Tween.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/libs/three.js

100644100755
File mode changed.

odoo/addons/3dCad/static/js/main.js

100644100755
+103-5
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,102 @@ var createDiv = function(parent, id){
1818
return out
1919
}
2020

21+
var prepareStructure = function(data, parent){
22+
let fOut = [];
23+
for (var data_ix in data){
24+
var group = data[data_ix];
25+
if (parent){
26+
group.location[0] += parent.location[0];
27+
group.location[1] += parent.location[1];
28+
group.location[2] += parent.location[2];
29+
group.rotation[0] += parent.rotation[0];
30+
group.rotation[1] += parent.rotation[1];
31+
group.rotation[2] += parent.rotation[2];
32+
}
33+
34+
35+
for (var object_ix in group.objects){
36+
var object = group.objects[object_ix];
37+
//console.log(object.file + ' ' + parseInt(object.location[0],10) + ' ' + parseInt(object.location[1], 10) + ' ' + parseInt(object.location[2],10))
38+
if (parent){
39+
object.location[0] += group.location[0];
40+
object.location[1] += group.location[1];
41+
object.location[2] += group.location[2];
42+
object.rotation[0] += group.rotation[0];
43+
object.rotation[1] += group.rotation[1];
44+
object.rotation[2] += group.rotation[2];
45+
}
46+
let r = Math.random().toString(36).substring(10);
47+
fOut.push({
48+
unique_name: r,
49+
file: '/3dCad/static/data/' + object.file,
50+
p_x: parseInt(object.location[0] ,10),
51+
p_y: parseInt(object.location[1], 10),
52+
p_z: parseInt(object.location[2], 10),
53+
r_x: parseInt(object.rotation[0], 10),
54+
r_y: parseInt(object.rotation[1], 10),
55+
r_z: parseInt(object.rotation[2], 10),
56+
});
57+
}
58+
let tempOut=prepareStructure(group.groups, group);
59+
if (tempOut.length>0){
60+
Array.prototype.push.apply(fOut, tempOut);
61+
}
62+
}
63+
return fOut;
64+
}
65+
66+
var load_stl = function (data, loader, scene){
67+
let bbox = new THREE.Box3();
68+
dataList.forEach(function(dataObject) {
69+
loader.load(dataObject.file , dataObject, function ( geometry ) {
70+
var innerGeometry = geometry;
71+
dataList.forEach(function(dataObjectInner) {
72+
if (innerGeometry.creationData.unique_name===dataObjectInner.unique_name){
73+
var p_x = dataObjectInner.p_x;
74+
var p_y = dataObjectInner.p_y;
75+
var p_z = dataObjectInner.p_z;
76+
var r_x = dataObjectInner.r_x;
77+
var r_y = dataObjectInner.r_y;
78+
var r_z = dataObjectInner.r_z;
79+
console.log(dataObjectInner.file + ' ' + parseInt(r_x,10) + ' ' + parseInt(r_y, 10) + ' ' + parseInt(r_z,10));
80+
var material = new THREE.MeshPhongMaterial( { color: 0xff5533, specular: 0x111111, shininess: 200 } );
81+
var mesh = new THREE.Mesh( innerGeometry, material );
82+
mesh.position.set( p_x, p_y, p_z);
83+
mesh.rotation.set( r_x * 3.14 /180, r_y * 3.14 /180, r_z* 3.14 /180 );
84+
mesh.scale.set(1, 1, 1);
85+
mesh.castShadow = true;
86+
mesh.receiveShadow = true;
87+
mesh.geometry.computeBoundingBox();
88+
bbox.union(mesh.geometry.boundingBox);
89+
scene.add(mesh)
90+
var bBox_new = new FOUR.BoundingBox("Main Mesh", );
91+
bBox_new.update(bbox);
92+
camera.zoomToFit(bBox_new, true);
93+
}
94+
});
95+
})
96+
});
97+
return bbox;
98+
}
99+
100+
var load_table = function(scene, camera){
101+
// load data structure
102+
$.ajax({
103+
type: "GET",
104+
url: '/3dCad/static/data/json/freecad.json',
105+
data: {},
106+
dataType: 'json',
107+
success: function(response){
108+
let data = response;
109+
var loader = new THREE.STLLoader();
110+
load_stl(data['groups'], loader, scene, camera);
111+
},
112+
error: function(){
113+
console.log('errore')
114+
}
115+
});
116+
}
21117
var createTestFour = function(divElement){
22118

23119
var domElement = createDiv(divElement, 'viewport');
@@ -26,7 +122,7 @@ var createTestFour = function(divElement){
26122
var scene = new THREE.Scene();
27123

28124
// camera
29-
var camera = new FOUR.TargetCamera(50, domElement.width / domElement.height, 0.1, 1000);
125+
var camera = new FOUR.TargetCamera(50, domElement.width / domElement.height, 0.1, 100);
30126
camera.position.set(0, -50, 0);
31127
camera.up = new THREE.Vector3(0, 0, 1);
32128
scene.add(camera);
@@ -40,9 +136,9 @@ var createTestFour = function(divElement){
40136
lights[1] = new THREE.PointLight(0xffffff, 1, 0);
41137
lights[2] = new THREE.PointLight(0xffffff, 1, 0);
42138

43-
lights[0].position.set(0, 180, 0);
44-
lights[1].position.set(100, 180, 100);
45-
lights[2].position.set(-100, -180, -100);
139+
lights[0].position.set(0, 1800, 0);
140+
lights[1].position.set(1000, 1800, 1000);
141+
lights[2].position.set(-1000, -1800, -1000);
46142

47143
scene.add(lights[0]);
48144
scene.add(lights[1]);
@@ -88,8 +184,10 @@ var createTestFour = function(divElement){
88184
mesh.position.y = Math.floor(0);
89185
mesh.position.z = Math.floor(0);
90186
cloud.add(mesh);
187+
188+
// custom load geometry
189+
load_table(cloud, camera);
91190
scene.add(cloud);
92-
93191
var axisHelper = new THREE.AxesHelper(20);
94192
scene.add(axisHelper);
95193

odoo/addons/3dCad/static/js/routes.js

100644100755
File mode changed.

odoo/addons/3dCad/static/xml/templates.xml

100644100755
File mode changed.

odoo/addons/3dCad/views/assets.xml

100644100755
File mode changed.

odoo/addons/3dCad/views/templates.xml

100644100755
File mode changed.

0 commit comments

Comments
 (0)