Changes to the mineral practice page

This commit is contained in:
2014-02-22 13:38:18 +10:00
parent 95abf5d7c3
commit 838112be0d
12 changed files with 874 additions and 247 deletions

163
.idea/dataSources.ids generated
View File

@@ -1,6 +1,165 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<component name="dataSourceStorage"> <component name="dataSourceStorage">
<data-source source="LOCAL" name="Django default" uuid="7e6a0f4c-659f-4195-8d38-0f33b1a39655"> <data-source source="LOCAL" name="Django default" product="SQLite" version="3.7.6.3" jdbc-version="2.1" driver-name="SQLiteJDBC" driver-version="native" uuid="7e6a0f4c-659f-4195-8d38-0f33b1a39655">
<database-info product="" version="" jdbc-version="" driver-name="" driver-version=""/> <case-sensitivity plain-identifiers="mixed" quoted-identifiers="mixed"/>
<jdbc-driver>org.sqlite.JDBC</jdbc-driver>
<jdbc-url>jdbc:sqlite:$PROJECT_DIR$/db.sqlite3</jdbc-url>
<libraries>
<library>
<url>file://$USER_HOME$/.PyCharm30/config/jdbc-drivers/xerial-sqlite-license.txt</url>
</library>
<library>
<url>file://$USER_HOME$/.PyCharm30/config/jdbc-drivers/sqlite-jdbc-3.7.6.3-20110609.081603-3.jar</url>
</library>
</libraries>
<schema name="" catalog=""/>
<table name="auth_group" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="name" sqlType="VARCHAR(80)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<primary-key columns="id"/>
<exported-key name="#FAKE_auth_user_groups_1" table="auth_user_groups" schema="" catalog="" columns="group_id"/>
</table>
<table name="auth_group_permissions" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="group_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="permission_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<primary-key columns="id"/>
<foreign-key name="#FAKE_auth_group_permissions_1" columns="permission_id" ref-table="auth_permission" ref-schema="" ref-catalog="" ref-columns="id" update-rule="3" delete-rule="3" deferrability="1"/>
<index name="auth_group_permissions_83d7f98b" unique="true" columns="permission_id"/>
<index name="auth_group_permissions_5f412f9a" unique="true" columns="group_id"/>
</table>
<table name="auth_permission" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="name" sqlType="VARCHAR(50)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="content_type_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="codename" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<primary-key columns="id"/>
<exported-key name="#FAKE_auth_group_permissions_1" table="auth_group_permissions" schema="" catalog="" columns="permission_id"/>
<exported-key name="#FAKE_auth_user_user_permissions_1" table="auth_user_user_permissions" schema="" catalog="" columns="permission_id"/>
<index name="auth_permission_37ef4eb4" unique="true" columns="content_type_id"/>
</table>
<table name="auth_user" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="password" sqlType="VARCHAR(128)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="last_login" sqlType="DATETIME" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="is_superuser" sqlType="BOOL" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="username" sqlType="VARCHAR(30)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="first_name" sqlType="VARCHAR(30)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="last_name" sqlType="VARCHAR(30)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="email" sqlType="VARCHAR(75)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="is_staff" sqlType="BOOL" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="is_active" sqlType="BOOL" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="date_joined" sqlType="DATETIME" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<primary-key columns="id"/>
<exported-key name="#FAKE_django_admin_log_2" table="django_admin_log" schema="" catalog="" columns="user_id"/>
</table>
<table name="auth_user_groups" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="user_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="group_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<primary-key columns="id"/>
<foreign-key name="#FAKE_auth_user_groups_1" columns="group_id" ref-table="auth_group" ref-schema="" ref-catalog="" ref-columns="id" update-rule="3" delete-rule="3" deferrability="1"/>
<index name="auth_user_groups_5f412f9a" unique="true" columns="group_id"/>
<index name="auth_user_groups_6340c63c" unique="true" columns="user_id"/>
</table>
<table name="auth_user_user_permissions" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="user_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="permission_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<primary-key columns="id"/>
<foreign-key name="#FAKE_auth_user_user_permissions_1" columns="permission_id" ref-table="auth_permission" ref-schema="" ref-catalog="" ref-columns="id" update-rule="3" delete-rule="3" deferrability="1"/>
<index name="auth_user_user_permissions_83d7f98b" unique="true" columns="permission_id"/>
<index name="auth_user_user_permissions_6340c63c" unique="true" columns="user_id"/>
</table>
<table name="django_admin_log" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="action_time" sqlType="DATETIME" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="user_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="content_type_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="true" jdbcType="4"/>
<column name="object_id" sqlType="TEXT" length="2000000000" precision="10" nullable="true" jdbcType="12"/>
<column name="object_repr" sqlType="VARCHAR(200)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="action_flag" sqlType="SMALLINT UNSIGNED" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="change_message" sqlType="TEXT" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<primary-key columns="id"/>
<foreign-key name="#FAKE_django_admin_log_1" columns="content_type_id" ref-table="django_content_type" ref-schema="" ref-catalog="" ref-columns="id" update-rule="3" delete-rule="3" deferrability="1"/>
<foreign-key name="#FAKE_django_admin_log_2" columns="user_id" ref-table="auth_user" ref-schema="" ref-catalog="" ref-columns="id" update-rule="3" delete-rule="3" deferrability="1"/>
<index name="django_admin_log_37ef4eb4" unique="true" columns="content_type_id"/>
<index name="django_admin_log_6340c63c" unique="true" columns="user_id"/>
</table>
<table name="django_content_type" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="name" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="app_label" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="model" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<primary-key columns="id"/>
<exported-key name="#FAKE_django_admin_log_1" table="django_admin_log" schema="" catalog="" columns="content_type_id"/>
</table>
<table name="django_session" schema="" catalog="" type="TABLE">
<column name="session_key" sqlType="VARCHAR(40)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="session_data" sqlType="TEXT" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="expire_date" sqlType="DATETIME" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<primary-key columns="session_key"/>
<index name="django_session_b7b81f0c" unique="true" columns="expire_date"/>
</table>
<table name="django_site" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="domain" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="name" sqlType="VARCHAR(50)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<primary-key columns="id"/>
</table>
<table name="south_migrationhistory" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="app_name" sqlType="VARCHAR(255)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="migration" sqlType="VARCHAR(255)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="applied" sqlType="DATETIME" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<primary-key columns="id"/>
</table>
<table name="three_d_viewer_answer" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="text" sqlType="VARCHAR(2000)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="correct" sqlType="BOOL" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="question_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<primary-key columns="id"/>
<index name="three_d_viewer_answer_25110688" unique="true" columns="question_id"/>
</table>
<table name="three_d_viewer_category" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="name" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="active" sqlType="BOOL" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="parent_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="true" jdbcType="4"/>
<primary-key columns="id"/>
<index name="three_d_viewer_category_410d0aac" unique="true" columns="parent_id"/>
</table>
<table name="three_d_viewer_mineral" schema="" catalog="" type="TABLE">
<column name="streak" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="habit" sqlType="VARCHAR(1000)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="lustre" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="colour" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="sample_ptr_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="true" jdbcType="4"/>
<column name="cleavage_fracture" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="identifying_features" sqlType="VARCHAR(1000)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="specific_gravity" sqlType="DECIMAL" length="2000000000" precision="10" nullable="true" jdbcType="6"/>
<column name="occurance" sqlType="VARCHAR(1000)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="crystallography" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="hardness" sqlType="DECIMAL" length="2000000000" precision="10" nullable="true" jdbcType="6"/>
<column name="chemical_formula" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<primary-key columns="sample_ptr_id"/>
</table>
<table name="three_d_viewer_question" schema="" catalog="" type="TABLE">
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="text" sqlType="VARCHAR(2000)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="sample_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<primary-key columns="id"/>
<index name="three_d_viewer_question_95642b83" unique="true" columns="sample_id"/>
</table>
<table name="three_d_viewer_sample" schema="" catalog="" type="TABLE">
<column name="description" sqlType="VARCHAR(2000)" length="2000000000" precision="10" nullable="true" jdbcType="12"/>
<column name="model_filename" sqlType="VARCHAR(1000)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<column name="parent_id" sqlType="INTEGER" length="2000000000" precision="10" nullable="true" jdbcType="4"/>
<column name="active" sqlType="BOOL" length="2000000000" precision="10" nullable="false" jdbcType="4"/>
<column name="id" sqlType="INTEGER" length="2000000000" precision="10" nullable="true" jdbcType="4"/>
<column name="name" sqlType="VARCHAR(100)" length="2000000000" precision="10" nullable="false" jdbcType="12"/>
<primary-key columns="id"/>
</table>
</data-source> </data-source>
</component> </component>

14
.idea/dataSources.xml generated
View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="DataSourceManagerImpl" format="xml" hash="186051761"> <component name="DataSourceManagerImpl" format="xml" hash="1501324042">
<data-source source="LOCAL" name="Django default" uuid="7e6a0f4c-659f-4195-8d38-0f33b1a39655"> <data-source source="LOCAL" name="Django default" uuid="7e6a0f4c-659f-4195-8d38-0f33b1a39655">
<driver-ref>sqlite.xerial</driver-ref>
<jdbc-driver>org.sqlite.JDBC</jdbc-driver> <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
<jdbc-url>jdbc:sqlite:H:\GitHub\rockviewer\db.sqlite3</jdbc-url> <jdbc-url>jdbc:sqlite:$PROJECT_DIR$/db.sqlite3</jdbc-url>
<libraries /> <libraries>
<library>
<url>file://$USER_HOME$/.PyCharm30/config/jdbc-drivers/xerial-sqlite-license.txt</url>
</library>
<library>
<url>file://$USER_HOME$/.PyCharm30/config/jdbc-drivers/sqlite-jdbc-3.7.6.3-20110609.081603-3.jar</url>
</library>
</libraries>
</data-source> </data-source>
</component> </component>
</project> </project>

2
.idea/misc.xml generated
View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.5 virtualenv at C:\Envs\rockviewer" project-jdk-type="Python SDK" /> <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.4 virtualenv at ~/.virtualenvs/rockviewer" project-jdk-type="Python SDK" />
</project> </project>

9
.idea/rockviewer.iml generated
View File

@@ -11,11 +11,18 @@
</component> </component>
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" /> <content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 2.7.5 virtualenv at C:\Envs\rockviewer" jdkType="Python SDK" /> <orderEntry type="jdk" jdkName="Python 2.7.4 virtualenv at ~/.virtualenvs/rockviewer" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
<component name="PyDocumentationSettings">
<option name="myDocStringFormat" value="Plain" />
</component>
<component name="TemplatesService"> <component name="TemplatesService">
<option name="TEMPLATE_CONFIGURATION" value="Django" /> <option name="TEMPLATE_CONFIGURATION" value="Django" />
</component> </component>
<component name="TestRunnerService">
<option name="projectConfiguration" value="Unittests" />
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
</component>
</module> </module>

392
.idea/workspace.xml generated
View File

@@ -2,21 +2,18 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="56ba8ed1-8d88-44b6-a1d9-9818bc65c9ae" name="Default" comment=""> <list default="true" id="56ba8ed1-8d88-44b6-a1d9-9818bc65c9ae" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/three_d_viewer/static/three_d_viewer/js/jquery.min.js" /> <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/mineral_detail.html" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/three_d_viewer/static/three_d_viewer/js/menu_jquery.js" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/dataSources.ids" afterPath="$PROJECT_DIR$/.idea/dataSources.ids" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/minerals_practice.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/db.sqlite3" afterPath="$PROJECT_DIR$/db.sqlite3" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/minerals_selftest.html" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/minerals_theory.html" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/three_d_viewer/static/three_d_viewer/css/styles.css" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/home.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/home.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/dataSources.xml" afterPath="$PROJECT_DIR$/.idea/dataSources.xml" />
<change type="MOVED" beforePath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/base.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/minerals_practice.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/minerals_practice.html" />
<change type="MOVED" beforePath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/home.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/home.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="$PROJECT_DIR$/.idea/misc.xml" />
<change type="MOVED" beforePath="H:\GitHub\rockviewer\three_d_viewer\templates\three_d_viewer\detail.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/detail.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/three_d_viewer/models.py" afterPath="$PROJECT_DIR$/three_d_viewer/models.py" />
<change type="MOVED" beforePath="H:\GitHub\rockviewer\three_d_viewer\templates\three_d_viewer\mineral_detail.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/mineral_detail.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/rockviewer.iml" afterPath="$PROJECT_DIR$/.idea/rockviewer.iml" />
<change type="MOVED" beforePath="H:\GitHub\rockviewer\three_d_viewer\templates\three_d_viewer\question.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/question.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/three_d_viewer/urls.py" afterPath="$PROJECT_DIR$/three_d_viewer/urls.py" />
<change type="MOVED" beforePath="H:\GitHub\rockviewer\three_d_viewer\templates\three_d_viewer\sampletree.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/sampletree.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/three_d_viewer/views.py" afterPath="$PROJECT_DIR$/three_d_viewer/views.py" />
<change type="MOVED" beforePath="H:\GitHub\rockviewer\three_d_viewer\templates\three_d_viewer\treenode.html" afterPath="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/treenode.html" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
</list> </list>
<ignored path="rockviewer.iws" /> <ignored path="rockviewer.iws" />
<ignored path=".idea/workspace.xml" /> <ignored path=".idea/workspace.xml" />
@@ -39,37 +36,19 @@
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf> <leaf>
<file leaf-file-name="home.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/home.html">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.0" vertical-offset="0" max-vertical-offset="119">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="base.html" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="base.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/base.html"> <entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/base.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="10" column="8" selection-start="384" selection-end="479" vertical-scroll-proportion="-6.5384617" vertical-offset="0" max-vertical-offset="1241"> <state line="33" column="16" selection-start="1288" selection-end="1288" vertical-scroll-proportion="0.0" vertical-offset="440" max-vertical-offset="1095">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="detail.html" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="mineral_detail.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/detail.html"> <entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/mineral_detail.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.0" vertical-offset="0" max-vertical-offset="7395"> <state line="62" column="23" selection-start="1779" selection-end="1779" vertical-scroll-proportion="0.0" vertical-offset="930" max-vertical-offset="1320">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="home.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/home.html">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="2490" vertical-scroll-proportion="-0.0" vertical-offset="0" max-vertical-offset="1156">
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -78,16 +57,76 @@
<file leaf-file-name="minerals_practice.html" pinned="false" current="false" current-in-tab="false"> <file leaf-file-name="minerals_practice.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/minerals_practice.html"> <entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/minerals_practice.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="9.807693" vertical-offset="255" max-vertical-offset="2040"> <state line="19" column="18" selection-start="546" selection-end="546" vertical-scroll-proportion="0.0" vertical-offset="285" max-vertical-offset="420">
<folding>
<marker date="1393026264539" expanded="true" signature="79:525" placeholder="..." />
<marker date="1393026264539" expanded="true" signature="106:441" placeholder="..." />
<marker date="1393026264539" expanded="true" signature="119:430" placeholder="..." />
<marker date="1393026264539" expanded="true" signature="161:416" placeholder="..." />
<marker date="1393026264539" expanded="true" signature="210:398" placeholder="..." />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="detail.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/detail.html">
<provider selected="true" editor-type-id="text-editor">
<state line="389" column="50" selection-start="10513" selection-end="10523" vertical-scroll-proportion="0.0" vertical-offset="5640" max-vertical-offset="6525">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="base.html" pinned="false" current="true" current-in-tab="true"> <file leaf-file-name="minerals_practice.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/docs/prototype/3dvol/revised/minerals_practice.html">
<provider selected="true" editor-type-id="text-editor">
<state line="96" column="63" selection-start="4901" selection-end="4916" vertical-scroll-proportion="0.0" vertical-offset="1001" max-vertical-offset="1800">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="base.html" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html"> <entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="11" column="0" selection-start="431" selection-end="431" vertical-scroll-proportion="0.13433908" vertical-offset="0" max-vertical-offset="1392"> <state line="10" column="19" selection-start="272" selection-end="272" vertical-scroll-proportion="0.0" vertical-offset="150" max-vertical-offset="990">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="mineral_detail.html" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/mineral_detail.html">
<provider selected="true" editor-type-id="text-editor">
<state line="418" column="56" selection-start="11478" selection-end="11478" vertical-scroll-proportion="0.3713389" vertical-offset="5915" max-vertical-offset="7020">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="views.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/three_d_viewer/views.py">
<provider selected="true" editor-type-id="text-editor">
<state line="65" column="19" selection-start="2102" selection-end="2102" vertical-scroll-proportion="0.0" vertical-offset="975" max-vertical-offset="1380">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="models.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/three_d_viewer/models.py">
<provider selected="true" editor-type-id="text-editor">
<state line="67" column="9" selection-start="2009" selection-end="2009" vertical-scroll-proportion="0.0" vertical-offset="1005" max-vertical-offset="1950">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="urls.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/three_d_viewer/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state line="12" column="4" selection-start="769" selection-end="769" vertical-scroll-proportion="0.0" vertical-offset="180" max-vertical-offset="375">
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -103,21 +142,30 @@
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component> </component>
<component name="GitLogSettings">
<option name="myDateState">
<MyDateState />
</option>
</component>
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="changedFiles"> <option name="changedFiles">
<list> <list>
<option value="C:/Python27/Lib/site-packages/dajaxice/urls.py" /> <option value="C:/Python27/Lib/site-packages/dajaxice/urls.py" />
<option value="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/detail.html" /> <option value="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/detail.html" />
<option value="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/home.html" /> <option value="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/home.html" />
<option value="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/minerals_practice.html" />
<option value="$PROJECT_DIR$/three_d_viewer/urls.py" />
<option value="$PROJECT_DIR$/three_d_viewer/models.py" />
<option value="$PROJECT_DIR$/three_d_viewer/views.py" />
<option value="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html" /> <option value="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html" />
<option value="$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/mineral_detail.html" />
</list> </list>
</option> </option>
</component> </component>
<component name="ProjectFrameBounds"> <component name="ProjectFrameBounds">
<option name="x" value="-8" /> <option name="y" value="36" />
<option name="y" value="-8" /> <option name="width" value="1920" />
<option name="width" value="2576" /> <option name="height" value="1175" />
<option name="height" value="1576" />
</component> </component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false"> <component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" /> <OptionsSetting value="true" id="Add" />
@@ -286,14 +334,6 @@
<option name="myItemId" value="three_d_viewer" /> <option name="myItemId" value="three_d_viewer" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="three_d_viewer" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="css" /> <option name="myItemId" value="css" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
@@ -361,46 +401,21 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="rockviewer" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rockviewer" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="docs" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="prototype" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="3dvol" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="images" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane> </subPane>
</pane> </pane>
<pane id="Scope" /> <pane id="Scope" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
<property name="recentsLimit" value="5" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="options.lastSelected" value="com.jetbrains.python.configuration.PythonSdkConfigurable" />
<property name="options.splitter.main.proportions" value="0.3" /> <property name="options.splitter.main.proportions" value="0.3" />
<property name="options.splitter.details.proportions" value="0.2" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="options.searchVisible" value="true" /> <property name="recentsLimit" value="5" />
<property name="options.lastSelected" value="editor.preferences.appearance" />
<property name="FullScreen" value="false" /> <property name="FullScreen" value="false" />
<property name="DefaultHtmlFileTemplate" value="Html5" /> <property name="DefaultHtmlFileTemplate" value="Html5" />
<property name="options.splitter.details.proportions" value="0.2" />
<property name="options.searchVisible" value="true" />
<property name="dynamic.classpath" value="false" />
</component> </component>
<component name="PyConsoleOptionsProvider"> <component name="PyConsoleOptionsProvider">
<option name="myPythonConsoleState"> <option name="myPythonConsoleState">
@@ -591,6 +606,12 @@
<option name="USE_PATTERN" value="false" /> <option name="USE_PATTERN" value="false" />
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="com.intellij.persistence.run.ConsoleRunConfigurationType" factoryName="Query Language Console">
<option name="VM_PARAMETERS" value="" />
<option name="USER_CFG_CLASS" />
<option name="CONTEXT_PROVIDER" />
<method />
</configuration>
<configuration default="false" name="rockviewer" type="Python.DjangoServer" factoryName="Django server"> <configuration default="false" name="rockviewer" type="Python.DjangoServer" factoryName="Django server">
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />
@@ -613,7 +634,9 @@
<option name="runNoReload" value="false" /> <option name="runNoReload" value="false" />
<option name="useCustomRunCommand" value="false" /> <option name="useCustomRunCommand" value="false" />
<option name="customRunCommand" value="" /> <option name="customRunCommand" value="" />
<RunnerSettings RunnerId="PyDebugRunner" />
<RunnerSettings RunnerId="PythonRunner" /> <RunnerSettings RunnerId="PythonRunner" />
<ConfigurationWrapper RunnerId="PyDebugRunner" />
<ConfigurationWrapper RunnerId="PythonRunner" /> <ConfigurationWrapper RunnerId="PythonRunner" />
<method /> <method />
</configuration> </configuration>
@@ -645,27 +668,33 @@
<created>1392778868816</created> <created>1392778868816</created>
<updated>1392778868816</updated> <updated>1392778868816</updated>
</task> </task>
<task id="LOCAL-00001" summary="Changes to the mineral practice page">
<created>1392989898846</created>
<updated>1392989898846</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers /> <servers />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-8" y="-8" width="2576" height="1576" extended-state="6" /> <frame x="0" y="36" width="1920" height="1175" extended-state="0" />
<editor active="false" /> <editor active="false" />
<layout> <layout>
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32944608" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.26124197" sideWeight="0.6705539" order="0" side_tool="false" content_ui="combo" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39941692" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32963988" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32889733" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
@@ -683,140 +712,117 @@
<option name="myTodoPanelSettings"> <option name="myTodoPanelSettings">
<TodoPanelSettings /> <TodoPanelSettings />
</option> </option>
<MESSAGE value="Changes to the mineral practice page" />
<option name="LAST_COMMIT_MESSAGE" value="Changes to the mineral practice page" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager /> <breakpoint-manager>
<option name="time" value="8" />
</breakpoint-manager>
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://C:/Python27/Lib/site-packages/dajaxice/urls.py"> <entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/sampletree.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="21" selection-start="21" selection-end="21" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="221"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="980" />
</provider>
</entry>
<entry file="file://$USER_HOME$/.virtualenvs/rockviewer/local/lib/python2.7/site-packages/django/views/generic/base.py">
<provider selected="true" editor-type-id="text-editor">
<state line="114" column="4" selection-start="4071" selection-end="4071" vertical-scroll-proportion="0.3321617" vertical-offset="1371" max-vertical-offset="3225" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/treenode.html">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="76" selection-start="438" selection-end="498" vertical-scroll-proportion="-6.25" vertical-offset="0" max-vertical-offset="285" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/home.html">
<provider selected="true" editor-type-id="text-editor">
<state line="6" column="58" selection-start="231" selection-end="231" vertical-scroll-proportion="-3.75" vertical-offset="0" max-vertical-offset="495" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state line="12" column="4" selection-start="769" selection-end="769" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="330">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/question.html"> <entry file="file://$PROJECT_DIR$/three_d_viewer/models.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="476"> <state line="67" column="9" selection-start="2009" selection-end="2009" vertical-scroll-proportion="0.0" vertical-offset="540" max-vertical-offset="1935">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/prototype/3dvol/revised/index.html">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="21" selection-start="387" selection-end="387" vertical-scroll-proportion="0.0" vertical-offset="240" max-vertical-offset="1156">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/home.html"> <entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/home.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="119"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="643" />
<folding />
</state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/detail.html"> <entry file="file://$PROJECT_DIR$/three_d_viewer/css/custom.css">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="7395"> <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="643" />
<folding />
</state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/home.html"> <entry file="file://$PROJECT_DIR$/docs/prototype/3dvol/revised/minerals_practice.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1156"> <state line="96" column="63" selection-start="4901" selection-end="4916" vertical-scroll-proportion="0.0" vertical-offset="1001" max-vertical-offset="1800">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/question.html">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="942">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/prototype/3dvol/index.html">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1547">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/prototype/3dvol/styles.css">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="4029" max-vertical-offset="5304">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/prototype/3dvol/revised/index.html">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="21" selection-start="387" selection-end="387" vertical-scroll-proportion="0.0" vertical-offset="240" max-vertical-offset="1156">
<folding />
</state>
</provider>
</entry>
<entry file="file://C:/Python27/Lib/site-packages/dajaxice/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="21" selection-start="21" selection-end="21" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="942">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/detail.html">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="7395">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/home.html">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="942">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/minerals_practice.html">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="9.807693" vertical-offset="255" max-vertical-offset="2040">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/home.html">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="2490" vertical-scroll-proportion="-0.0" vertical-offset="0" max-vertical-offset="1156">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/static/three_d_viewer/js/menu_jquery.js">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1418">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/base.html">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="8" selection-start="384" selection-end="479" vertical-scroll-proportion="-6.5384617" vertical-offset="0" max-vertical-offset="1241">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/static/three_d_viewer/css/styles.css">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="15062">
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html"> <entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/base.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state line="11" column="0" selection-start="431" selection-end="431" vertical-scroll-proportion="0.13433908" vertical-offset="0" max-vertical-offset="1392"> <state line="10" column="19" selection-start="272" selection-end="272" vertical-scroll-proportion="0.0" vertical-offset="150" max-vertical-offset="990">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/minerals_practice.html">
<provider selected="true" editor-type-id="text-editor">
<state line="19" column="18" selection-start="546" selection-end="546" vertical-scroll-proportion="0.0" vertical-offset="285" max-vertical-offset="420">
<folding>
<marker date="1393026264539" expanded="true" signature="79:525" placeholder="..." />
<marker date="1393026264539" expanded="true" signature="106:441" placeholder="..." />
<marker date="1393026264539" expanded="true" signature="119:430" placeholder="..." />
<marker date="1393026264539" expanded="true" signature="161:416" placeholder="..." />
<marker date="1393026264539" expanded="true" signature="210:398" placeholder="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/base.html">
<provider selected="true" editor-type-id="text-editor">
<state line="33" column="16" selection-start="1288" selection-end="1288" vertical-scroll-proportion="0.0" vertical-offset="440" max-vertical-offset="1095">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/detail.html">
<provider selected="true" editor-type-id="text-editor">
<state line="389" column="50" selection-start="10513" selection-end="10523" vertical-scroll-proportion="0.0" vertical-offset="5640" max-vertical-offset="6525">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/Old/mineral_detail.html">
<provider selected="true" editor-type-id="text-editor">
<state line="62" column="23" selection-start="1779" selection-end="1779" vertical-scroll-proportion="0.0" vertical-offset="930" max-vertical-offset="1320">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/views.py">
<provider selected="true" editor-type-id="text-editor">
<state line="65" column="19" selection-start="2102" selection-end="2102" vertical-scroll-proportion="0.0" vertical-offset="662" max-vertical-offset="1305">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/three_d_viewer/templates/three_d_viewer/mineral_detail.html">
<provider selected="true" editor-type-id="text-editor">
<state line="418" column="56" selection-start="11478" selection-end="11478" vertical-scroll-proportion="0.3713389" vertical-offset="5915" max-vertical-offset="7020">
<folding /> <folding />
</state> </state>
</provider> </provider>

Binary file not shown.

View File

@@ -61,10 +61,11 @@ class Sample(CommonInfo):
@property @property
def url(self): def url(self):
if isinstance(self, Mineral):
return 'three_d_viewer:mineral_detail' return 'three_d_viewer:mineral_detail'
else: #if isinstance(self, Mineral):
return 'three_d_viewer:detail' # return 'three_d_viewer:mineral_detail'
#else:
# return 'three_d_viewer:detail'
class Mineral(Sample): class Mineral(Sample):

View File

@@ -5,12 +5,15 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>3DVOL - 3D Virtual Object Library</title> <title>3DVOL - 3D Virtual Object Library</title>
{% block includes %}
<link href="{% static "three_d_viewer/css/styles.css" %}" rel="stylesheet" media="screen" /> <link href="{% static "three_d_viewer/css/styles.css" %}" rel="stylesheet" media="screen" />
<script type="text/javascript" src="{% static "three_d_viewer/js/jquery.min.js" %}"></script> <script type="text/javascript" src="{% static "three_d_viewer/js/jquery.min.js" %}"></script>
<script type='text/javascript' src="{% static "three_d_viewer/js/menu_jquery.js.js" %}"></script> <script type='text/javascript' src="{% static "three_d_viewer/js/menu_jquery.js" %}"></script>
{% endblock %}
</head> </head>
<body> <body onload={% block loadscript %}""{% endblock %}>
<div id="wrapper"> <div id="wrapper">
<div id="container"> <div id="container">
<div id="header"> <div id="header">

View File

@@ -0,0 +1,463 @@
{% extends "three_d_viewer/minerals_practice.html" %}
{% load static %}
{% block includes %}
{{ block.super }}
<script type="text/javascript" src="{% static "three_d_viewer/js/lzma.js" %}"></script>
<script type="text/javascript" src="{% static "three_d_viewer/js/ctm.js" %}"></script>
<script type="text/javascript" src="{% static "three_d_viewer/js/glMatrix-0.9.5.min.js" %}"></script>
<script id="shader-vs" type="x-shader/x-vertex">
attribute vec3 aVertexPosition;
attribute vec4 aVertexColor;
uniform mat4 uMVMatrix;
uniform mat4 uPMatrix;
varying vec4 vColor;
void main(void){
gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1);
vColor = aVertexColor;
}
</script>
<script id="shader-fs" type="x-shader/x-fragment">
#ifdef GL_ES
precision highp float;
#endif
varying vec4 vColor;
void main(void){
gl_FragColor = vec4(vColor.rgb, 1);;
}
</script>
<script type="text/javascript">
var request;
var file;
var gl;
var shaderProgram;
var mvMatrix = mat4.create();
var pMatrix = mat4.create();
var vertexIndexBuffer;
var vertexPositionBuffer;
var vertexColorBuffer;
var offsets = [];
var mouseDown = false;
var lastMouseX;
var lastMouseY;
var translationMatrix = vec3.create();
var rotationMatrix = mat4.create();
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback, element){
window.setTimeout(callback, 1000/60);
};
})();
function formatNumber(numero, decimales){
var pot = Math.pow(10, decimales);
return parseInt(numero * pot) / pot;
}
{% block load %}
function load(){
window.addEventListener('resize', resizeCanvas, false);
resizeCanvas();
var sampleFilename = '{{ mineral.model_filename|escapejs }}';
if (sampleFilename.trim() == "")
{
document.getElementById("progress").innerHTML = "No model defined!";
return;
}
request = new XMLHttpRequest();
request.open("GET", '{{ MEDIA_URL }}' + sampleFilename, true);
request.overrideMimeType("text/plain; charset=x-user-defined");
request.onreadystatechange = function(){
if (this.readyState == 3 || this.readyState == 4){
document.getElementById("progress").innerHTML = "Downloading... "
+ formatNumber(this.responseText.length / 1048576, 2) + " MB";
}
if (this.readyState == 4 && (this.status == 200 || this.status == 0) ){
document.getElementById("progress").innerHTML = "Unpacking...";
setTimeout(loaded, 1);
}
}
request.send();
}
{% endblock load %}
function loaded(){
/*if ( navigator.userAgent.indexOf("WebKit") == -1){
var worker = new Worker("loader.js");
worker.onmessage = function(event){
file = event.data;
webGLStart();
document.getElementById("progress").innerHTML = "";
};
worker.postMessage(request.responseText);
}else{*/
file = new CTM.File( new CTM.Stream(request.responseText) );
webGLStart();
document.getElementById("progress").innerHTML = "";
//}
}
function webGLStart(){
var canvas = document.getElementById("canvas");
canvas.oncontextmenu = function() { return false; } // supress the context menu in the canvas
initGL(canvas);
initBoundingBox();
initOffsets();
initShaders();
initBuffers();
gl.clearColor(1.0, 1.0, 1.0, 1.0);
gl.enable(gl.DEPTH_TEST);
gl.viewport(0, 0, gl.viewportWidth, gl.viewportHeight);
vec3.set(translationMatrix, [0, 0, -100]);
mat4.identity(rotationMatrix);
canvas.onmousedown = handleMouseDown;
canvas.onmouseup = handleMouseUp;
canvas.onmousemove = handleMouseMove;
canvas.onmousewheel = handleMouseWheel;
canvas.addEventListener("DOMMouseScroll", handleMouseWheel, false);
tick();
}
function initGL(canvas){
try{
gl = canvas.getContext("experimental-webgl");
gl.viewportWidth = canvas.width;
gl.viewportHeight = canvas.height;
}catch(e){
}
if (!gl){
alert("Could not initialise WebGL, sorry :-(");
}
}
function initBoundingBox(){
var v = file.body.vertices;
var x = Infinity, y = Infinity, z = Infinity;
var X = -Infinity, Y = -Infinity, Z = -Infinity;
for (var i = 0; i < v.length; i += 3){
if (v[i] < x) x = v[i];
if (v[i+1] < y) y = v[i+1];
if (v[i+2] < z) z = v[i+2];
if (v[i] > X) X = v[i];
if (v[i+1] > Y) Y = v[i+1];
if (v[i+2] > Z) Z = v[i+2];
}
for (var i = 0; i < v.length; i += 3){
v[i] = -( (X-x)/2 ) + ( v[i] - x);
v[i+1] = -( (Y-y)/2 ) + ( v[i+1] - y);
v[i+2] = -( (Z-z)/2 ) + ( v[i+2] - z);
}
}
function initOffsets(){
var indices = file.body.indices;
var start = 0;
var min = file.body.vertices.length;
var max = 0;
var minPrev = min;
for (var i = 0; i < indices.length;){
for (var j = 0; j < 3; ++ j){
var idx = indices[i ++];
if (idx < min) min = idx;
if (idx > max) max = idx;
}
if (max - min > 65535){
i -= 3;
for (var k = start; k < i; ++ k){
indices[k] -= minPrev;
}
offsets.push( {start: start, count: i - start, index: minPrev} );
start = i;
min = file.body.vertices.length;
max = 0;
}
minPrev = min;
}
for (var k = start; k < i; ++ k){
indices[k] -= minPrev;
}
offsets.push( {start: start, count: i - start, index: minPrev} );
}
function initShaders(){
var fragmentShader = getShader(gl, "shader-fs");
var vertexShader = getShader(gl, "shader-vs");
shaderProgram = gl.createProgram();
gl.attachShader(shaderProgram, vertexShader);
gl.attachShader(shaderProgram, fragmentShader);
gl.linkProgram(shaderProgram);
gl.useProgram(shaderProgram);
shaderProgram.vertexPositionAttribute = gl.getAttribLocation(shaderProgram, "aVertexPosition");
gl.enableVertexAttribArray(shaderProgram.vertexPositionAttribute);
shaderProgram.vertexColorAttribute = gl.getAttribLocation(shaderProgram, "aVertexColor");
gl.enableVertexAttribArray(shaderProgram.vertexColorAttribute);
shaderProgram.pMatrixUniform = gl.getUniformLocation(shaderProgram, "uPMatrix");
shaderProgram.mvMatrixUniform = gl.getUniformLocation(shaderProgram, "uMVMatrix");
}
function getShader(gl, id){
var shaderScript = document.getElementById(id);
var str = "";
var node = shaderScript.firstChild;
while(node){
if (node.nodeType == 3){
str += node.textContent;
}
node = node.nextSibling;
}
var shader;
if (shaderScript.type == "x-shader/x-fragment"){
shader = gl.createShader(gl.FRAGMENT_SHADER);
}else if (shaderScript.type == "x-shader/x-vertex"){
shader = gl.createShader(gl.VERTEX_SHADER);
}
gl.shaderSource(shader, str);
gl.compileShader(shader);
return shader;
}
function initBuffers(){
vertexIndexBuffer = gl.createBuffer();
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, vertexIndexBuffer);
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,
new Uint16Array(file.body.indices), gl.STATIC_DRAW);
vertexIndexBuffer.itemSize = 1;
vertexIndexBuffer.numItems = file.body.indices.length;
vertexPositionBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, vertexPositionBuffer);
gl.bufferData(gl.ARRAY_BUFFER,
file.body.vertices, gl.STATIC_DRAW);
vertexPositionBuffer.itemSize = 3;
vertexPositionBuffer.numItems = file.body.vertices.length;
vertexColorBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, vertexColorBuffer);
gl.bufferData(gl.ARRAY_BUFFER,
file.body.attrMaps[0].attr, gl.STATIC_DRAW);
vertexColorBuffer.itemSize = 4;
vertexColorBuffer.numItems = file.body.attrMaps[0].attr.length;
}
function tick(){
drawScene();
requestAnimFrame(tick);
}
function drawScene(){
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
mat4.perspective(45, gl.viewportWidth / gl.viewportHeight, 0.01, 1200.0, pMatrix);
mat4.translate(pMatrix, [0.0, 0,-.6]);
mat4.identity(mvMatrix);
mat4.translate(mvMatrix, translationMatrix);
mat4.multiply(mvMatrix, rotationMatrix);
gl.uniformMatrix4fv(shaderProgram.pMatrixUniform, false, pMatrix);
gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mvMatrix);
var normalMatrix = mat3.create();
mat4.toInverseMat3(mvMatrix, normalMatrix);
mat3.transpose(normalMatrix);
gl.uniformMatrix3fv(shaderProgram.nMatrixUniform, false, normalMatrix);
for (var i = 0; i < offsets.length; ++ i){
gl.bindBuffer(gl.ARRAY_BUFFER, vertexPositionBuffer);
gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute,
vertexPositionBuffer.itemSize, gl.FLOAT, false, 0, offsets[i].index * 4 * 3);
gl.bindBuffer(gl.ARRAY_BUFFER, vertexColorBuffer);
gl.vertexAttribPointer(shaderProgram.vertexColorAttribute,
vertexColorBuffer.itemSize, gl.FLOAT, false, 0, offsets[i].index * 4 * 4);
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, vertexIndexBuffer);
gl.drawElements(gl.TRIANGLES, offsets[i].count, gl.UNSIGNED_SHORT, offsets[i].start * 2); // 2 = uint16
}
}
function degToRad(degrees){
return degrees * Math.PI / 180;
}
function handleMouseWheel(event){
event.preventDefault();
var delta = event.wheelDelta | -event.detail;
if (delta < 0){
translationMatrix[2] -= .05;
}else{
translationMatrix[2] += .05;
}
event.returnValue=false;
}
function handleMouseDown(event){
mouseDown = true;
lastMouseX = event.clientX;
lastMouseY = event.clientY;
}
function handleMouseUp(event){
mouseDown = false;
}
function handleMouseMove(event){
if (mouseDown){
var newX = event.clientX;
var newY = event.clientY;
var deltaX = newX - lastMouseX;
var deltaY = newY - lastMouseY;
switch (event.which) {
case 1: // left mouse
var newRotationMatrix = mat4.create();
mat4.identity(newRotationMatrix);
mat4.rotate(newRotationMatrix, degToRad(deltaX / 5), [0, 1, 0]);
mat4.rotate(newRotationMatrix, degToRad(deltaY / 5), [1, 0, 0]);
mat4.multiply(newRotationMatrix, rotationMatrix, rotationMatrix);
break;
case 3: // right mouse
//translationMatrix[0] += deltaX;
//translationMatrix[1] += deltaY;
var newTranslateMatrix = mat4.create();
mat4.identity(newTranslateMatrix);
mat4.translate(newTranslateMatrix, [deltaX, deltaY, 0], [deltaX, deltaY, 0])
console.log('moving ' + deltaX + ', ' + deltaY)
break;
}
lastMouseX = newX
lastMouseY = newY;
}
}
function resizeCanvas() {
var canvas = document.getElementById("canvas") ;
var parent = document.getElementById("virtualObject");
var canvasWidth1 = canvas.width;
var canvasHeight1 = canvas.height;
canvas.width = parent.offsetWidth;
canvas.height = parent.offsetHeight;
if (gl){
/*hmove = canvas.width / 2 - canvasWidth1 / 2
vmove = canvas.height / 2 - canvasHeight1 / 2
mat4.translate(mvMatrix, [hmove, vmove, 0.0])
console.log('Resizing from ' + canvasWidth1 + ' x ' + canvasHeight1 + ' to ' + canvas.width + ' x ' + canvas.height);
console.log('moving centre ' + hmove + ' x ' + vmove)*/
}
}
</script>
{% endblock %}
{% block loadscript %}"load()"{% endblock %}
{% block mineral_detail %}
<div id="mineralContainer">
<div id="mineralOne">
<h1 class="subHeadings">{{ mineral.name }}</h1>
<h2 class="theoryHeadings">Physical properties</h2>
<table class="table">
<tr>
<td>Chemical Formula:</td>
<td>{{ mineral.chemical_formula|safe }}</td>
</tr>
<tr>
<td>Hardness:</td>
<td>{{ mineral.hardness }}</td>
</tr>
<tr>
<td>Specific Gravity:</td>
<td>{{ mineral.specific_gravity }}</td>
</tr>
<tr>
<td>Cleavage/Fracture:</td>
<td>{{ mineral.cleavage_fracture }}</td>
</tr>
<tr>
<td>Lustre:</td>
<td>{{ mineral.lustre }}</td>
</tr>
<tr>
<td>Colour:</td>
<td>{{ mineral.colour }}</td>
</tr>
<tr>
<td>Streak:</td>
<td>{{ mineral.habit }}</td>
</tr>
<tr>
<td>Crystallography:</td>
<td>{{ mineral.crystallography }}</td>
</tr>
</table>
<h2 class="theoryHeadings">Diagnostic features</h2>
<p>{{ mineral.identifying_features }}</p>
<h2 class="theoryHeadings">Geological significance</h2>
<p>{{ mineral.occurance }}</p>
</div>
</div>
{% endblock %}
{% block 3dcontent %}
<div id="virtualObject">
<canvas id="canvas" class="example"></canvas>
<div><br><span id="progress" style="color: red"></span></div>
</div>
{% endblock %}

View File

@@ -7,45 +7,17 @@
<li class="has-sub mainitem"><a href="#">Select a mineral</a> <li class="has-sub mainitem"><a href="#">Select a mineral</a>
<ul> <ul>
{% for sample in active_samples %} {% for sample in active_samples %}
<li>{{ sample.name }}</li> <li><a href={% url sample.url sample.id %}>{{ sample.name }}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
</li> </li>
</ul> </ul>
</div><!-- close MINERALMENU !--> </div><!-- close MINERALMENU !-->
<div id="mineralContainer"> {% block mineral_detail %}
<div id="mineralOne" style="display:none"> {% endblock %}
<h1 class="subHeadings">Mineral name here</h1>
<h2 class="theoryHeadings">Physical properties</h2>
<p>Info about the mineral here</p>
<p>Info about the mineral here</p>
<p>Info about the mineral here</p>
<h2 class="theoryHeadings">Diagnostic features</h2>
<p>Info about the mineral here</p>
<p>Info about the mineral here</p>
<p>Info about the mineral here</p>
<h2 class="theoryHeadings">Geological significance</h2>
<p>Info about the mineral here</p>
<p>Info about the mineral here</p>
<p>Info about the mineral here</p>
</div>
<div id="mineralTwo" style="display:none">
<p>Info about mineral 2</p>
</div>
<div id="mineralThree" style="display:none">
<p>Info about mineral 3</p>
</div>
<div id="mineralFour" style="display:none">
<p>Info about mineral 4</p>
</div>
<div id="mineralFive" style="display:none">
<p>Info about mineral 5</p>
</div>
</div>
</div> </div>
<div id="virtualObject"> {% block 3dcontent %}
<img src="images/rock_example.jpeg" class="example" /> {% endblock %}
</div>
{% endblock %} {% endblock %}

View File

@@ -10,7 +10,8 @@ urlpatterns = patterns(
url(r'^minerals_theory/$', generic.TemplateView.as_view(template_name="three_d_viewer/minerals_theory.html"), name='minerals_theory'), url(r'^minerals_theory/$', generic.TemplateView.as_view(template_name="three_d_viewer/minerals_theory.html"), name='minerals_theory'),
url(r'^minerals_practice/$', views.MineralPracticeView.as_view(template_name="three_d_viewer/minerals_practice.html"), name='minerals_practice'), url(r'^minerals_practice/$', views.MineralPracticeView.as_view(template_name="three_d_viewer/minerals_practice.html"), name='minerals_practice'),
url(r'^minerals_selftest/$', generic.TemplateView.as_view(template_name="three_d_viewer/minerals_selftest.html"), name='minerals_selftest'), url(r'^minerals_selftest/$', generic.TemplateView.as_view(template_name="three_d_viewer/minerals_selftest.html"), name='minerals_selftest'),
url(r'^minerals/(?P<pk>\d+)/$', views.MineralPracticeView.as_view(), name='mineral_detail'), url(r'^minerals/(?P<pk>\d+)/$', views.MineralDetailView.as_view(), name='mineral_detail'),
#url(r'^minerals/(?P<pk>\d+)/$', views.MineralPracticeView.as_view(), name='mineral_practice'),
#url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'), #url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
#url(r'^minerals/(?P<pk>\d+)/$', views.MineralDetailView.as_view(), name='mineral_detail'), #url(r'^minerals/(?P<pk>\d+)/$', views.MineralDetailView.as_view(), name='mineral_detail'),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', url(r'^media/(?P<path>.*)$', 'django.views.static.serve',

View File

@@ -33,7 +33,6 @@ class MineralPracticeView(generic.ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(MineralPracticeView, self).get_context_data(**kwargs) context = super(MineralPracticeView, self).get_context_data(**kwargs)
cat = Category.objects.get(name='Minerals') cat = Category.objects.get(name='Minerals')
#context['active_samples'] = cat.active_samples
result = cat.active_samples result = cat.active_samples
for child in cat.active_children: for child in cat.active_children:
@@ -59,7 +58,7 @@ class DetailView(generic.DetailView):
filter(active=True).order_by('name') filter(active=True).order_by('name')
return context return context
class MineralDetailView(DetailView): class MineralDetailView(generic.DetailView):
""" """
Add extra functionality for mineral details Add extra functionality for mineral details
""" """
@@ -70,9 +69,19 @@ class MineralDetailView(DetailView):
parent_categories = Category.objects.filter(parent=None). \ parent_categories = Category.objects.filter(parent=None). \
filter(active=True).order_by("name") filter(active=True).order_by("name")
#def get_context_data(self, **kwargs):
# context = super(MineralDetailView, self).get_context_data(**kwargs)
# context['active_samples'] = Sample.objects.select_subclasses(Mineral).filter(active=True).order_by('name')
# context['parent_categories'] = Category.objects.filter(parent=None). \
# filter(active=True).order_by('name')
# return context
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(DetailView, self).get_context_data(**kwargs) context = super(MineralDetailView, self).get_context_data(**kwargs)
context['active_samples'] = Sample.objects.select_subclasses(Mineral).filter(active=True).order_by('name') cat = Category.objects.get(name='Minerals')
context['parent_categories'] = Category.objects.filter(parent=None). \ result = cat.active_samples
filter(active=True).order_by('name')
for child in cat.active_children:
result = chain(result, child.active_samples)
context['active_samples'] = sorted(result, key=attrgetter('name'))
return context return context