Merge remote-tracking branch 'origin/master'

This commit is contained in:
2017-03-28 16:43:22 +02:00
10 changed files with 567 additions and 44303 deletions

View File

@@ -7,6 +7,11 @@ node_type_hdri = {
'description': 'HDR Image', 'description': 'HDR Image',
'parent': ['group_hdri'], 'parent': ['group_hdri'],
'dyn_schema': { 'dyn_schema': {
# Default yaw angle in degrees.
'default_yaw': {
'type': 'float',
'default': 0.0
},
'status': { 'status': {
'type': 'string', 'type': 'string',
'allowed': [ 'allowed': [

View File

@@ -85,7 +85,7 @@ def add_form_properties(form_class, node_type):
elif field_type == 'integer': elif field_type == 'integer':
field = IntegerField(prop_name, default=0) field = IntegerField(prop_name, default=0)
elif field_type == 'float': elif field_type == 'float':
field = FloatField(prop_name, default=0) field = FloatField(prop_name, default=0.0)
elif field_type == 'boolean': elif field_type == 'boolean':
field = BooleanField(prop_name) field = BooleanField(prop_name)
elif field_type == 'objectid' and 'data_relation' in schema_prop: elif field_type == 'objectid' and 'data_relation' in schema_prop:
@@ -168,10 +168,15 @@ def process_node_form(form, node_id=None, node_type=None, user=None):
if schema_prop['type'] == 'dict': if schema_prop['type'] == 'dict':
data = attachments.attachment_form_parse_post_data(data) data = attachments.attachment_form_parse_post_data(data)
elif schema_prop['type'] == 'integer': elif schema_prop['type'] == 'integer':
if data == '': if not data:
data = 0 data = None
else: else:
data = int(form[prop_name].data) data = int(form[prop_name].data)
elif schema_prop['type'] == 'float':
if not data:
data = None
else:
data = float(form[prop_name].data)
elif schema_prop['type'] == 'datetime': elif schema_prop['type'] == 'datetime':
data = datetime.strftime(data, current_app.config['RFC1123_DATE_FORMAT']) data = datetime.strftime(data, current_app.config['RFC1123_DATE_FORMAT'])
elif schema_prop['type'] == 'list': elif schema_prop['type'] == 'list':

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

File diff suppressed because one or more lines are too long

View File

@@ -35,3 +35,22 @@ pip install -e ../pillar-python-sdk
pip install -U -r requirements.txt pip install -U -r requirements.txt
pip install -e . pip install -e .
``` ```
## HDRi viewer
The HDRi viewer uses [Google VRView](https://github.com/googlevr/vrview). To upgrade,
get those files:
* [three.min.js](https://raw.githubusercontent.com/googlevr/vrview/master/build/three.min.js)
* [embed.min.js](https://raw.githubusercontent.com/googlevr/vrview/master/build/embed.min.js)
* [loading.gif](https://raw.githubusercontent.com/googlevr/vrview/master/images/loading.gif)
and place them in `pillar/web/static/assets/vrview`. Replace `images/loading.gif` in `embed.min.js` with `static/pillar/assets/vrview/loading.gif`.
You may also want to compare their
[index.html](https://raw.githubusercontent.com/googlevr/vrview/master/index.html) to our
`src/templates/vrview.jade`.
When on a HDRi page with the viewer embedded, use this JavaScript code to find the current
yaw: `vrview_window.contentWindow.yaw()`. This can be passed as `default_yaw` parameter to
the iframe.

File diff suppressed because one or more lines are too long

View File

@@ -24,20 +24,12 @@
| {% if children %} | {% if children %}
| {% for child in children %} | {% for child in children %}
| {% if child.properties.status == 'published' %} | {% if child.properties.status == 'published' or child.user == current_user.objectid %}
a.list-node-children-container( a.list-node-children-container(
href="#", href="#",
data-node_id="{{ child._id }}", data-node_id="{{ child._id }}",
class="item_icon {{child.node_type}} {% if child.picture %}thumbnail{% endif %}") class="item_icon {{child.node_type}} {% if child.picture %}thumbnail{% endif %}")
.list-node-children-item-preview
span.texture-name {{child.name}}
| {% if child.picture %}
img.texture-preview(
src="",
data-preview="{{ child.picture.thumbnail('m', api=api)}}",
alt='{{child.name}}')
| {% endif %}
.list-node-children-item(class="{{child.node_type}}") .list-node-children-item(class="{{child.node_type}}")
.list-node-children-item-thumbnail .list-node-children-item-thumbnail
| {% if child.picture %} | {% if child.picture %}
@@ -77,9 +69,6 @@
| {% endif %} | {% endif %}
| {% endif %} | {% endif %}
.list-node-children-item-name
span {{ child.name }}
| {% endif %} | {% endif %}
| {% endfor %} | {% endfor %}
| {% else %} | {% else %}

View File

@@ -5,12 +5,13 @@
section.node-preview section.node-preview
| {% if node.picture %} | {% if node.picture %}
iframe( iframe(
id='vrview_window'
width='100%', width='100%',
height='450px', height='450px',
scrolling='no', scrolling='no',
frameborder='0', frameborder='0',
allowfullscreen='', allowfullscreen='',
src="{{url_for('main.vrview', preview=node.picture.thumbnail('l', api=api), image=node.picture.thumbnail('h', api=api), is_stereo='false')}}") src="{{url_for('main.vrview', preview=node.picture.thumbnail('l', api=api), image=node.picture.thumbnail('h', api=api), default_yaw=(node.properties.default_yaw or 0))}}")
| {% endif %} | {% endif %}
section.node-details-container section.node-details-container
@@ -130,4 +131,3 @@ script.
}); });
| {% endblock %} | {% endblock %}

View File

@@ -13,4 +13,13 @@ html(lang='en')
.wrap .wrap
h1.title Error h1.title Error
p.message An unknown error occurred. p.message An unknown error occurred.
script(src="{{url_for('static_pillar', filename='assets/js/vrview-analytics.min.js')}}") script(src="{{url_for('static_pillar', filename='assets/vrview/three.min.js')}}")
script(src="{{url_for('static_pillar', filename='assets/vrview/embed.min.js')}}")
script.
/** Returns the current yaw in degrees. */
function yaw() {
console.log('default yaw:', worldRenderer.sceneInfo.defaultYaw * 180 / Math.PI);
console.log('camera rotation: ', worldRenderer.camera.rotation.y * 180 / Math.PI);
var the_yaw = worldRenderer.sceneInfo.defaultYaw + worldRenderer.camera.rotation.y;
return the_yaw * 180 / Math.PI;
}