Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
x3domlet
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
3
Issues
3
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Elphel
x3domlet
Commits
fae3c7f5
Commit
fae3c7f5
authored
Oct 05, 2017
by
Oleg Dzhimiev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
saving and parsing marks for multiple models orientation
parent
1fdcdb59
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
449 additions
and
34 deletions
+449
-34
ui.css
js/ui.css
+2
-2
ui_extra_models.js
js/ui_extra_models.js
+304
-24
ui_init.js
js/ui_init.js
+13
-2
x3dom_functions.js
js/x3dom_functions.js
+66
-0
x3dom_init.js
js/x3dom_init.js
+5
-6
store_marks.php
store_marks.php
+59
-0
No files found.
js/ui.css
View file @
fae3c7f5
...
@@ -426,6 +426,6 @@ html, body, #x3d_wrapper {
...
@@ -426,6 +426,6 @@ html, body, #x3d_wrapper {
text-align
:
right
;
text-align
:
right
;
}
}
#mpr_save
{
#mpr_save
,
#mpr_save_marks
{
margin
:
5px
;
margin
:
0px
5px
5px
5px
;
}
}
js/ui_extra_models.js
View file @
fae3c7f5
This diff is collapsed.
Click to expand it.
js/ui_init.js
View file @
fae3c7f5
...
@@ -38,7 +38,10 @@
...
@@ -38,7 +38,10 @@
var
Data
=
{
var
Data
=
{
camera
:{},
camera
:{},
markers
:[],
markers
:[],
extra_models
:[]
extra_models
:[],
mpr
:{
markers
:[]
}
};
};
var
Scene
;
var
Scene
;
...
@@ -54,6 +57,8 @@ var SETTINGS = {
...
@@ -54,6 +57,8 @@ var SETTINGS = {
'moreinfo'
:
true
,
'moreinfo'
:
true
,
'crosshair'
:
false
,
'crosshair'
:
false
,
'shiftspeed'
:
0.01
,
'shiftspeed'
:
0.01
,
// for relative size
'markersize_k'
:
0.025
,
'markersize'
:
1
,
'markersize'
:
1
,
'markercolor'
:
"#1f1"
,
'markercolor'
:
"#1f1"
,
'slidingdrag'
:
true
,
'slidingdrag'
:
true
,
...
@@ -92,12 +97,17 @@ var AUTOCOLORS_COUNTER = 0;
...
@@ -92,12 +97,17 @@ var AUTOCOLORS_COUNTER = 0;
var
MARKER_PREFIX
=
"my-sph-"
;
var
MARKER_PREFIX
=
"my-sph-"
;
// Manual Position & Orientation mode
// Manual Position & Orientation mode
// x,y - canvas coordinates - click position
// counter - helper counter
var
MPR
=
{
var
MPR
=
{
counter
:
0
,
counter
:
0
,
x
:
null
,
x
:
null
,
y
:
null
y
:
null
};
};
// recorded marks restored
var
MPR_MARKS_LOADED
=
false
;
// no comments
// no comments
function
parseURL
(){
function
parseURL
(){
var
parameters
=
location
.
href
.
replace
(
/
\?
/ig
,
"&"
).
split
(
"&"
);
var
parameters
=
location
.
href
.
replace
(
/
\?
/ig
,
"&"
).
split
(
"&"
);
...
@@ -458,6 +468,7 @@ function deep_init(){
...
@@ -458,6 +468,7 @@ function deep_init(){
x3d_setShiftSpeed
();
x3d_setShiftSpeed
();
if
(
!
MPR_MARKS_LOADED
)
mpr_marks_load
();
}
}
// loading extra models?
// loading extra models?
...
@@ -612,7 +623,7 @@ function x3d_events(){
...
@@ -612,7 +623,7 @@ function x3d_events(){
}
else
{
}
else
{
//
place align marker here
//
for alignment? do nothing
}
}
...
...
js/x3dom_functions.js
View file @
fae3c7f5
...
@@ -356,6 +356,24 @@ function zNear_bug_correction(xyz){
...
@@ -356,6 +356,24 @@ function zNear_bug_correction(xyz){
}
}
// shoot ray with zNear correction
function
x3dom_shootRay_fixed
(
x
,
y
){
var
ray
=
Scene
.
element
.
runtime
.
shootRay
(
x
,
y
);
// missed
if
(
ray
.
pickPosition
==
null
){
return
-
1
;
}
var
tmp
=
zNear_bug_correction
([
ray
.
pickPosition
.
x
,
ray
.
pickPosition
.
y
,
ray
.
pickPosition
.
z
]);
ray
.
pickPosition
=
new
x3dom
.
fields
.
SFVec3f
(
tmp
[
0
],
tmp
[
1
],
tmp
[
2
]);
return
ray
;
}
// this upright is for world coordinates, not the camera's
// this upright is for world coordinates, not the camera's
// the up vector should be taken from the initial camera orientation in kml.
// the up vector should be taken from the initial camera orientation in kml.
function
x3dom_setUpRight
(){
function
x3dom_setUpRight
(){
...
@@ -872,3 +890,51 @@ function x3dom_setViewpoint(m){
...
@@ -872,3 +890,51 @@ function x3dom_setViewpoint(m){
Data
.
camera
.
Matrices
.
RC_w
=
m
;
Data
.
camera
.
Matrices
.
RC_w
=
m
;
}
}
function
x3dom_markersize
(
x
,
y
,
z
){
if
(
SETTINGS
.
markersize
<
0
){
var
d
=
x3dom_3d_distance
(
x
,
y
,
z
,
true
);
res
=
-
SETTINGS
.
markersize
*
SETTINGS
.
markersize_k
*
d
;
}
else
{
res
=
SETTINGS
.
markersize
;
}
return
res
;
}
function
x3dom_getTransorm
(
element
){
var
tra_str
=
$
(
element
).
attr
(
"translation"
);
var
rot_str
=
$
(
element
).
attr
(
"rotation"
);
var
mr
=
x3dom
.
fields
.
Quaternion
.
parseAxisAngle
(
rot_str
).
toMatrix
();
var
tra
=
x3dom
.
fields
.
SFVec3f
.
parse
(
tra_str
);
var
mt
=
x3dom
.
fields
.
SFMatrix4f
.
translation
(
tra
);
var
mtn
=
x3dom
.
fields
.
SFMatrix4f
.
translation
(
tra
.
negate
());
var
m
=
mr
.
mult
(
mt
);
return
m
;
}
function
x3dom_getTransorm_from_2_parents
(
element
){
var
m1
=
x3dom_getTransorm
(
element
.
parent
());
var
m2
=
x3dom_getTransorm
(
element
.
parent
().
parent
());
return
m1
.
mult
(
m2
);
}
function
x3dom_autocolor
(){
var
color
=
SETTINGS
.
markercolor
;
color
=
AUTOCOLORS
[
AUTOCOLORS_COUNTER
%
AUTOCOLORS
.
length
];
AUTOCOLORS_COUNTER
++
;
return
color
;
}
js/x3dom_init.js
View file @
fae3c7f5
...
@@ -64,6 +64,7 @@ var X3DOMObject = function(element,data,options){
...
@@ -64,6 +64,7 @@ var X3DOMObject = function(element,data,options){
// status vars
// status vars
this
.
_X3DOM_SCENE_INIT_BACK_DONE
=
false
;
this
.
_X3DOM_SCENE_INIT_BACK_DONE
=
false
;
this
.
_X3DOM_SCENE_INIT_DONE
=
false
;
this
.
_X3DOM_SCENE_INIT_DONE
=
false
;
this
.
_ctrlKey
=
false
;
this
.
_ctrlKey
=
false
;
this
.
_shiftKey
=
false
;
this
.
_shiftKey
=
false
;
this
.
_stored_x3dom_event
=
null
;
this
.
_stored_x3dom_event
=
null
;
...
@@ -515,7 +516,7 @@ X3DOMObject.prototype.createMarker = function(x,y,z,id){
...
@@ -515,7 +516,7 @@ X3DOMObject.prototype.createMarker = function(x,y,z,id){
var
index
=
null
;
var
index
=
null
;
var
color
=
convert_color_l2x
(
SETTINGS
.
markercolor
);
var
color
=
convert_color_l2x
(
SETTINGS
.
markercolor
);
var
size
=
SETTINGS
.
markersize
/
2
;
var
size
=
x3dom_markersize
()
/
2
;
if
((
id
==
""
)
||
(
id
==
undefined
)){
if
((
id
==
""
)
||
(
id
==
undefined
)){
sph_class
=
"my-markers"
;
sph_class
=
"my-markers"
;
...
@@ -1014,7 +1015,7 @@ X3DOMObject.PointerMarker.updatePars = function(){
...
@@ -1014,7 +1015,7 @@ X3DOMObject.PointerMarker.updatePars = function(){
// place pointer marker
// place pointer marker
$
(
"#sliding_sphere"
).
find
(
'material'
).
attr
(
"diffuseColor"
,
convert_color_l2x
(
SETTINGS
.
markercolor
));
$
(
"#sliding_sphere"
).
find
(
'material'
).
attr
(
"diffuseColor"
,
convert_color_l2x
(
SETTINGS
.
markercolor
));
$
(
"#sliding_sphere"
).
find
(
'material'
).
attr
(
"transparency"
,
"0.2"
);
$
(
"#sliding_sphere"
).
find
(
'material'
).
attr
(
"transparency"
,
"0.2"
);
$
(
"#sliding_sphere"
).
find
(
'Sphere'
).
attr
(
"radius"
,
SETTINGS
.
markersize
/
2
);
$
(
"#sliding_sphere"
).
find
(
'Sphere'
).
attr
(
"radius"
,
((
SETTINGS
.
markersize
<
0
)?
-
1
:
1
)
*
SETTINGS
.
markersize
/
2
);
}
}
...
@@ -1515,9 +1516,7 @@ X3DOMObject.createNewMarker = function(x,y,z){
...
@@ -1515,9 +1516,7 @@ X3DOMObject.createNewMarker = function(x,y,z){
var
Camera
=
Map
.
marker
;
var
Camera
=
Map
.
marker
;
// Create marker for Data
// Create marker for Data
var
color
=
SETTINGS
.
markercolor
;
var
color
=
x3dom_autocolor
();
color
=
AUTOCOLORS
[
AUTOCOLORS_COUNTER
%
AUTOCOLORS
.
length
];
AUTOCOLORS_COUNTER
++
;
var
xyz_real
=
x3dom_scene_to_real
(
x
,
y
,
z
);
var
xyz_real
=
x3dom_scene_to_real
(
x
,
y
,
z
);
...
@@ -1526,7 +1525,7 @@ X3DOMObject.createNewMarker = function(x,y,z){
...
@@ -1526,7 +1525,7 @@ X3DOMObject.createNewMarker = function(x,y,z){
y
:
y
||
0
,
y
:
y
||
0
,
z
:
z
||
0
,
z
:
z
||
0
,
color
:
color
,
color
:
color
,
size
:
SETTINGS
.
markersize
,
size
:
x3dom_markersize
(
x
,
y
,
z
)
});
});
mark
.
d_x3d
=
Math
.
sqrt
(
Math
.
pow
(
xyz_real
.
x
,
2
)
+
Math
.
pow
(
xyz_real
.
z
,
2
));
mark
.
d_x3d
=
Math
.
sqrt
(
Math
.
pow
(
xyz_real
.
x
,
2
)
+
Math
.
pow
(
xyz_real
.
z
,
2
));
...
...
store_marks.php
0 → 100644
View file @
fae3c7f5
<?php
/*
*! -----------------------------------------------------------------------------**
*! FILE NAME : store_marks.php
*! REVISION : 1.0
*! DESCRIPTION: save marks for manual position and orientation
*! Copyright (C) 2017 Elphel, Inc.
*!
*! -----------------------------------------------------------------------------**
*! This program is free software: you can redistribute it and/or modify
*! it under the terms of the GNU General Public License as published by
*! the Free Software Foundation, either version 3 of the License, or
*! (at your option) any later version.
*!
*! This program is distributed in the hope that it will be useful,
*! but WITHOUT ANY WARRANTY; without even the implied warranty of
*! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*! GNU General Public License for more details.
*!
*! You should have received a copy of the GNU General Public License
*! along with this program. If not, see <http://www.gnu.org/licenses/>.
*!
*! It means that the program's users have the four essential freedoms:
*!
*! * The freedom to run the program, for any purpose (freedom 0).
*! * The freedom to study how the program works, and change it to make it do what you wish (freedom 1).
*! Access to the source code is a precondition for this.
*! * The freedom to redistribute copies so you can help your neighbor (freedom 2).
*! * The freedom to distribute copies of your modified versions to others (freedom 3).
*!
*! By doing this you can give the whole community a chance to benefit from your changes.
*! Access to the source code is a precondition for this.
*! -----------------------------------------------------------------------------**
*/
require_once
(
"call_filter.php"
);
$model
=
$_GET
[
'model'
];
$marks_file
=
"models/
$model
/marks.xml"
;
$contents
=
file_get_contents
(
'php://input'
);
if
(
!
preg_match
(
"/\//"
,
$model
)){
$result
=
file_put_contents
(
$marks_file
,
$contents
);
if
(
!
$result
)
{
die
(
"-1"
);
}
else
{
die
(
"0"
);
}
}
else
{
die
(
"-2"
);
}
?>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment