Disabled external gits
This commit is contained in:
BIN
cs440-acg/ext/nanogui/resources/FontAwesome-Solid.ttf
Normal file
BIN
cs440-acg/ext/nanogui/resources/FontAwesome-Solid.ttf
Normal file
Binary file not shown.
BIN
cs440-acg/ext/nanogui/resources/Inconsolata-Regular.ttf
Normal file
BIN
cs440-acg/ext/nanogui/resources/Inconsolata-Regular.ttf
Normal file
Binary file not shown.
BIN
cs440-acg/ext/nanogui/resources/Roboto-Bold.ttf
Normal file
BIN
cs440-acg/ext/nanogui/resources/Roboto-Bold.ttf
Normal file
Binary file not shown.
BIN
cs440-acg/ext/nanogui/resources/Roboto-Regular.ttf
Normal file
BIN
cs440-acg/ext/nanogui/resources/Roboto-Regular.ttf
Normal file
Binary file not shown.
83
cs440-acg/ext/nanogui/resources/check-style.sh
Executable file
83
cs440-acg/ext/nanogui/resources/check-style.sh
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Script to check include/test code for common pybind11 code style errors.
|
||||
#
|
||||
# This script currently checks for
|
||||
#
|
||||
# 1. use of tabs instead of spaces
|
||||
# 2. MSDOS-style CRLF endings
|
||||
# 3. trailing spaces
|
||||
# 4. missing space between keyword and parenthesis, e.g.: for(, if(, while(
|
||||
# 5. Missing space between right parenthesis and brace, e.g. 'for (...){'
|
||||
# 6. opening brace on its own line. It should always be on the same line as the
|
||||
# if/while/for/do statment.
|
||||
#
|
||||
# Invoke as: tools/check-style.sh
|
||||
#
|
||||
|
||||
errors=0
|
||||
IFS=$'\n'
|
||||
found=
|
||||
# The mt=41 sets a red background for matched tabs:
|
||||
exec 3< <(GREP_COLORS='mt=41' grep $'\t' include/ src/ python/*.{h,cpp} docs/*.rst -rn --color=always)
|
||||
while read -u 3 f; do
|
||||
if [ -z "$found" ]; then
|
||||
echo -e '\e[31m\e[01mError: found tabs instead of spaces in the following files:\e[0m'
|
||||
found=1
|
||||
errors=1
|
||||
fi
|
||||
|
||||
echo " $f"
|
||||
done
|
||||
|
||||
found=
|
||||
# The mt=41 sets a red background for matched MS-DOS CRLF characters
|
||||
exec 3< <(GREP_COLORS='mt=41' grep -IUlr $'\r' include/ src/ python/*.{h,cpp} docs/*.rst --color=always)
|
||||
while read -u 3 f; do
|
||||
if [ -z "$found" ]; then
|
||||
echo -e '\e[31m\e[01mError: found CRLF characters in the following files:\e[0m'
|
||||
found=1
|
||||
errors=1
|
||||
fi
|
||||
|
||||
echo " $f"
|
||||
done
|
||||
|
||||
found=
|
||||
# The mt=41 sets a red background for matched trailing spaces
|
||||
exec 3< <(GREP_COLORS='mt=41' grep '\s\+$' include/ src/ python/*.{h,cpp} docs/*.rst -rn --color=always)
|
||||
while read -u 3 f; do
|
||||
if [ -z "$found" ]; then
|
||||
echo -e '\e[31m\e[01mError: found trailing spaces in the following files:\e[0m'
|
||||
found=1
|
||||
errors=1
|
||||
fi
|
||||
|
||||
echo " $f"
|
||||
done
|
||||
|
||||
found=
|
||||
exec 3< <(grep '\<\(if\|for\|while\|catch\)(\|){' include/ src/ python/*.{h,cpp} -rn --color=always)
|
||||
while read -u 3 line; do
|
||||
if [ -z "$found" ]; then
|
||||
echo -e '\e[31m\e[01mError: found the following coding style problems:\e[0m'
|
||||
found=1
|
||||
errors=1
|
||||
fi
|
||||
|
||||
echo " $line"
|
||||
done
|
||||
|
||||
found=
|
||||
exec 3< <(GREP_COLORS='mt=41' grep '^\s*{\s*$' include/ src/ -rn --color=always)
|
||||
while read -u 3 f; do
|
||||
if [ -z "$found" ]; then
|
||||
echo -e '\e[31m\e[01mError: braces should occur on the same line as the if/while/.. statement. Found issues in the following files: \e[0m'
|
||||
found=1
|
||||
errors=1
|
||||
fi
|
||||
|
||||
echo " $f"
|
||||
done
|
||||
|
||||
exit $errors
|
132
cs440-acg/ext/nanogui/resources/fa-import.py
Normal file
132
cs440-acg/ext/nanogui/resources/fa-import.py
Normal file
@@ -0,0 +1,132 @@
|
||||
# Imports FontAwesome's 'all.css' and creates the 'icons.h' header file
|
||||
|
||||
import yaml
|
||||
|
||||
with open("icons.yml", 'r') as stream:
|
||||
try:
|
||||
data = yaml.safe_load(stream)
|
||||
except yaml.YAMLError as exc:
|
||||
print(exc)
|
||||
|
||||
icons = []
|
||||
for key, value in data.items():
|
||||
if 'solid' in value['styles']:
|
||||
key = 'fa-' + key
|
||||
name = key.replace('-', '_').upper()
|
||||
spacer = " " * (40-len(name))
|
||||
icons.append((key, name, spacer, value['unicode']))
|
||||
|
||||
|
||||
with open("icons.h", 'w') as f:
|
||||
f.write('''/*
|
||||
NanoGUI was developed by Wenzel Jakob <wenzel.jakob@epfl.ch>.
|
||||
The widget drawing code is based on the NanoVG demo application
|
||||
by Mikko Mononen.
|
||||
|
||||
All rights reserved. Use of this source code is governed by a
|
||||
BSD-style license that can be found in the LICENSE.txt file.
|
||||
*/
|
||||
|
||||
/* Developer note: need to make a change to this file?
|
||||
* Please raise an Issue on GitHub describing what needs to change. This file
|
||||
* was generated, so the scripts that generated it needs to update as well.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \\file nanogui/icons.h
|
||||
*
|
||||
* \\brief This is a list of icon codes for the free variant of the
|
||||
* FontAwesome 5.10.1 font.
|
||||
*
|
||||
* \\rst
|
||||
*
|
||||
* This file defines the full listing of
|
||||
* `FontAwesome <https://raw.githubusercontent.com/FortAwesome/Font-Awesome>`_
|
||||
* icons available in NanoGUI. Please note that if viewing the documentation
|
||||
* on the web, your browser may display the icons differently than what they
|
||||
* look like in NanoGUI. Run the one of the :ref:`nanogui_example_icons`
|
||||
* executables to see what they all look like in NanoGUI.
|
||||
*
|
||||
* .. tip::
|
||||
*
|
||||
* In C++, ``#include <nanogui/icons.h>`` to gain access to the ``#define``
|
||||
* shown in these docs and simply reference the names as listed in the
|
||||
* documentation. To use the icons from Python, declare
|
||||
* ``from nanogui import icons`` and reference the icons as follows:
|
||||
* ``icons.FA_ASTERISK``.
|
||||
*
|
||||
* The following icons are available:
|
||||
*
|
||||
* .. raw:: html
|
||||
*
|
||||
* <center>
|
||||
* <div class="wy-table-responsive">
|
||||
* <table class="docutils" border=1>
|
||||
* <colgroup>
|
||||
* <col width="90%" align="center"/>
|
||||
* <col width="10%" align="center" />
|
||||
* </colgroup>
|
||||
* <thead valign="bottom">
|
||||
* <tr class="row-odd">
|
||||
* <th class="head" align="center">Definition</th>
|
||||
* <th class="head" align="center">Icon</th>
|
||||
* </tr>
|
||||
* </thead>
|
||||
* <tbody valign="top">
|
||||
''')
|
||||
|
||||
for i, icon in enumerate(icons):
|
||||
evenodd = 'even' if i % 2 == 0 else 'odd'
|
||||
name_orig = icon[0]
|
||||
name_new = icon[1]
|
||||
f.write(f''' * <tr class="row-{evenodd}">
|
||||
* <td align="right"><code>{name_new}</code></td>
|
||||
* <td align="center"><span class="{name_orig}"></span></td>
|
||||
* </tr>
|
||||
''')
|
||||
f.write(''' * </tbody>
|
||||
* </table>
|
||||
* </div><!-- wy-table-responsive -->
|
||||
* </center>
|
||||
*
|
||||
* \endrst
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// prevent individual pages from being generated for all of these
|
||||
#if !defined(DOXYGEN_SHOULD_SKIP_THIS)
|
||||
|
||||
''')
|
||||
for name_orig, name_new, spacer, hexcode in icons:
|
||||
f.write(f'#define {name_new}{spacer}0x{hexcode}\n')
|
||||
f.write('\n#endif // DOXYGEN_SHOULD_SKIP_THIS\n')
|
||||
|
||||
|
||||
with open('icons.cpp', 'w') as f:
|
||||
f.write('''#ifdef NANOGUI_PYTHON
|
||||
|
||||
#include "python.h"
|
||||
|
||||
/* Developer note: need to make a change to this file?
|
||||
* Please raise an Issue on GitHub describing what needs to change. This file
|
||||
* was generated, so the scripts that generated it needs to update as well.
|
||||
*/
|
||||
|
||||
void register_entypo(py::module &m) {
|
||||
/* Entypo constants */
|
||||
{
|
||||
#define C(name) g.attr(#name) = py::int_(name);
|
||||
py::module g = m.def_submodule("icons");
|
||||
''')
|
||||
for name_orig, name_new, spacer, hexcode in icons:
|
||||
f.write(f' C({name_new});\n')
|
||||
f.write(''' #undef C
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
''')
|
||||
with open('example_icons.cpp', 'w') as f:
|
||||
for name_orig, name_new, spacer, hexcode in icons:
|
||||
f.write(f' ADD_BUTTON({name_new});\n')
|
18
cs440-acg/ext/nanogui/resources/imageview_fragment.gl
Normal file
18
cs440-acg/ext/nanogui/resources/imageview_fragment.gl
Normal file
@@ -0,0 +1,18 @@
|
||||
#version 330
|
||||
|
||||
in vec2 uv;
|
||||
in vec2 position_background;
|
||||
out vec4 frag_color;
|
||||
uniform sampler2D image;
|
||||
uniform vec4 background_color;
|
||||
|
||||
void main() {
|
||||
vec2 frac = position_background - floor(position_background);
|
||||
float checkerboard = ((frac.x > .5) == (frac.y > .5)) ? 0.4 : 0.5;
|
||||
|
||||
vec4 background = (1.0 - background_color.a) * vec4(vec3(checkerboard), 1.0) +
|
||||
background_color.a * vec4(background_color.rgb, 1.0);
|
||||
|
||||
vec4 value = texture(image, uv);
|
||||
frag_color = (1.0 - value.a) * background + value.a * vec4(value.rgb, 1.0);
|
||||
}
|
17
cs440-acg/ext/nanogui/resources/imageview_fragment.gles
Normal file
17
cs440-acg/ext/nanogui/resources/imageview_fragment.gles
Normal file
@@ -0,0 +1,17 @@
|
||||
precision highp float;
|
||||
|
||||
varying vec2 uv;
|
||||
varying vec2 position_background;
|
||||
uniform sampler2D image;
|
||||
uniform vec4 background_color;
|
||||
|
||||
void main() {
|
||||
vec2 frac = position_background - floor(position_background);
|
||||
float checkerboard = ((frac.x > .5) == (frac.y > .5)) ? 0.4 : 0.5;
|
||||
|
||||
vec4 background = (1.0 - background_color.a) * vec4(vec3(checkerboard), 1.0) +
|
||||
background_color.a * vec4(background_color.rgb, 1.0);
|
||||
|
||||
vec4 value = texture2D(image, uv);
|
||||
gl_FragColor = (1.0 - value.a) * background + value.a * vec4(value.rgb, 1.0);
|
||||
}
|
23
cs440-acg/ext/nanogui/resources/imageview_fragment.metal
Normal file
23
cs440-acg/ext/nanogui/resources/imageview_fragment.metal
Normal file
@@ -0,0 +1,23 @@
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
|
||||
struct VertexOut {
|
||||
float4 position_image [[position]];
|
||||
float2 position_background;
|
||||
float2 uv;
|
||||
};
|
||||
|
||||
fragment float4 fragment_main(VertexOut vert [[stage_in]],
|
||||
texture2d<float, access::sample> image,
|
||||
constant float4 &background_color,
|
||||
sampler image_sampler) {
|
||||
float2 frac = vert.position_background - floor(vert.position_background);
|
||||
float checkerboard = ((frac.x > .5f) == (frac.y > .5f)) ? .4f : .5f;
|
||||
|
||||
float4 background = (1.f - background_color.a) * float4(float3(checkerboard), 1.f) +
|
||||
background_color.a * float4(background_color.rgb, 1.f);
|
||||
|
||||
float4 value = image.sample(image_sampler, vert.uv);
|
||||
return (1.f - value.a) * background + value.a * float4(value.rgb, 1.f);
|
||||
}
|
14
cs440-acg/ext/nanogui/resources/imageview_vertex.gl
Normal file
14
cs440-acg/ext/nanogui/resources/imageview_vertex.gl
Normal file
@@ -0,0 +1,14 @@
|
||||
#version 330
|
||||
|
||||
uniform mat4 matrix_image;
|
||||
uniform mat4 matrix_background;
|
||||
in vec2 position;
|
||||
out vec2 position_background;
|
||||
out vec2 uv;
|
||||
|
||||
void main() {
|
||||
vec4 p = vec4(position, 0.0, 1.0);
|
||||
gl_Position = matrix_image * p;
|
||||
position_background = (matrix_background * p).xy;
|
||||
uv = position;
|
||||
}
|
14
cs440-acg/ext/nanogui/resources/imageview_vertex.gles
Normal file
14
cs440-acg/ext/nanogui/resources/imageview_vertex.gles
Normal file
@@ -0,0 +1,14 @@
|
||||
precision highp float;
|
||||
|
||||
uniform mat4 matrix_image;
|
||||
uniform mat4 matrix_background;
|
||||
attribute vec2 position;
|
||||
varying vec2 position_background;
|
||||
varying vec2 uv;
|
||||
|
||||
void main() {
|
||||
vec4 p = vec4(position, 0.0, 1.0);
|
||||
gl_Position = matrix_image * p;
|
||||
position_background = (matrix_background * p).xy;
|
||||
uv = position;
|
||||
}
|
21
cs440-acg/ext/nanogui/resources/imageview_vertex.metal
Normal file
21
cs440-acg/ext/nanogui/resources/imageview_vertex.metal
Normal file
@@ -0,0 +1,21 @@
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
|
||||
struct VertexOut {
|
||||
float4 position_image [[position]];
|
||||
float2 position_background;
|
||||
float2 uv;
|
||||
};
|
||||
|
||||
vertex VertexOut vertex_main(const device float2 *position,
|
||||
constant float4x4 &matrix_image,
|
||||
constant float4x4 &matrix_background,
|
||||
uint id [[vertex_id]]) {
|
||||
float4 p = float4(position[id], 0.f, 1.f);
|
||||
VertexOut vert;
|
||||
vert.position_image = matrix_image * p;
|
||||
vert.position_background = (matrix_background * p).xy;
|
||||
vert.uv = p.xy;
|
||||
return vert;
|
||||
}
|
BIN
cs440-acg/ext/nanogui/resources/screenshot.png
Normal file
BIN
cs440-acg/ext/nanogui/resources/screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
BIN
cs440-acg/ext/nanogui/resources/screenshot2.png
Normal file
BIN
cs440-acg/ext/nanogui/resources/screenshot2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 47 KiB |
Reference in New Issue
Block a user