Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
YainVieyra committed Apr 5, 2020
1 parent fa2c524 commit 1effbb5
Show file tree
Hide file tree
Showing 91 changed files with 1,047 additions and 0 deletions.
19 changes: 19 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SOURCEDIR = source
BUILDDIR = build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
180 changes: 180 additions & 0 deletions source/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config

# -- Path setup --------------------------------------------------------------

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
import sphinx_rtd_theme

# -- Project information -----------------------------------------------------

project = u'Pro Align Tools Documentation'
copyright = u'2020, Yain Rodrigo Vieyra Gatica'
author = u'Yain Rodrigo Vieyra Gatica'

# The short X.Y version
version = u''
# The full version, including alpha/beta/rc tags
release = u'2.1'


# -- General configuration ---------------------------------------------------

# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx_rtd_theme',
]

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'

# The master toctree document.
master_doc = 'index'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []

# The name of the Pygments (syntax highlighting) style to use.
pygments_style = None


# -- Options for HTML output -------------------------------------------------

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'

# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.

html_logo = 'images/2.8/banner.png'

html_theme_options = {
'logo_only': True,
'display_version': True,
'collapse_navigation': True,
}

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']

# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
# html_sidebars = {}


# -- Options for HTMLHelp output ---------------------------------------------

# Output file base name for HTML help builder.
htmlhelp_basename = 'ProAlignToolsdoc'


# -- Options for LaTeX output ------------------------------------------------

latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',

# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',

# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',

# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}

# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'ProAlignTools.tex', u'Pro Align Tools Documentation',
u'Yain Rodrigo Vieyra Gatica', 'manual'),
]


# -- Options for manual page output ------------------------------------------

# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'proaligntools', u'Pro Align Tools Documentation',
[author], 1)
]


# -- Options for Texinfo output ----------------------------------------------

# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'ProAlignTools', u'Pro Align Tools Documentation',
author, 'ProAlignTools', 'One line description of project.',
'Miscellaneous'),
]


# -- Options for Epub output -------------------------------------------------

# Bibliographic Dublin Core info.
epub_title = project

# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
#
# epub_identifier = ''

# A unique identification for the text.
#
# epub_uid = ''

# A list of files that should not be packed into the epub file.
epub_exclude_files = ['search.html']
35 changes: 35 additions & 0 deletions source/doc/general/faq.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Frequent Questions
==================

|
When using an older 2.8 version of Pro Align Tools (pro_align_tools_2_8.zip), I can't see the Align tool icon in the Toolbar. What can I do to solve this problem?
##################################################################################################################################################################

The 2.80 version of the script had to copy a special icon in the Blender installation directory.

Sometimes the user don't have permission to copy files into that directory.
This is why, when failing to do so, the icon looks missing with a NONE placeholder icon.

The first time, you should launch Blender with administration rights and do the installation normally.

If you installed the addon previously, it's recommended to first remove the addon and then,
after reinstallation and activation, your icon should appear visible in the toolbar.

Next executions of Blender won't require administration rights, so you can launch normally.

**The most recent versions of Pro Align Tools don't have this problem anymore.**

|
What can I do when I need to select an object behind a gizmo?
#############################################################

You can approach this problem in 3 ways:

* The most obvious is to zoom in/out and avoid the cursor being on top of any gizmo, then selecting your geometry as usual.
* If you prefer to select objects with the **Left Click**, you can temporary use the shortcut **D** in the 3D View to turn off the drawing of gizmos.
Then you can perform all your actions as usual without worrying about clicking on any gizmo.
When you are done selecting your objects, you can re-enable the drawing of gizmos by using the same shortcut.
* If you prefer to select objects with the **Right Click**, you can take advantage of the fact that with this workflow, selection and action are bound to different buttons, and this way they never conflict each other.
The action on gizmos is always on **Left Click** while selection happens on **Right Click**.
20 changes: 20 additions & 0 deletions source/doc/general/installation.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Installation
============


Installing for Blender 2.8x (for newer versions of Pro Align Tools)
###################################################################

* Go to Edit > **Preferences**
* Go to the **Add-ons** section
* Press the **Install...** button from the top right
* Navigate through your filesystem until you find the **Pro Align Tools** addon and select it: **pro_align_tools_2_82.zip**
* Press the **Install Add-on from File...** button. You should now be able to see it listed in the addons list
* Press the little empty **checkbox** next to the addon name in order to enable it
* In the bottom left corner of the Preferences window, look for the **Save & Load** button with a collapsed menu icon (the one with three horizontal lines) and click it to open the Save & Load Menu
* If you have the **Auto-Save Preferences** checkbox enabled, you can just close the Preferences window,
and once you reopen Blender, **Pro Align Tools** will continue to be available in future executions.
On the other hand, if you have the **Auto-Save Preferences** checkbox disabled,
you will have to click the **Save Preferences** button from the Save & Load Menu to ensure that **Pro Align Tools**
remain available in future executions of Blender
* Enjoy!
11 changes: 11 additions & 0 deletions source/doc/introduction/access.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Accessing the Tool
==================

You can easily access the Tool both in Object and Edit Modes, from the 3D View, by clicking over the **Align** icon in the Toolbar (**T**).

You can also access the Tool by using its shortcut: **Ctrl** + **Alt** + **A**

.. figure:: /images/2.8/tool.jpg
:align: center

Press this button in the Toolbar to select the Align Tool.
94 changes: 94 additions & 0 deletions source/doc/introduction/first_time.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
Running the first time
======================

The basis of **Pro Align Tools** is to define a projection Plane where the objects will perform their alignment.
Objects then can align in different ways in relation to that projection Plane, opening a whole set of possibilities to align within 3D space.

The predetermined alignment of **Pro Align Tools** is just to align all selected objects to their minimum X in Global Coordinates.
The default behaviour uses the geometry of objects, whose origin of displacement is picked up from a generated bound box that is perpendicular to the current plane.

This alignment is the equivalent of just clicking the positive X arrow of the leftmost gizmo from your current Selected objects (leftmost gizmo in the X axis as seen from the top view).

So, as a first exercise, just select some randomly placed objects.
You should see a preview of the alignment showing you how will the objects move to align at the minimum X of the selected objects' bound box.
If you press **Enter/Return**, your objects will align.

You can move, rotate and scale the objects all you want while the preview runs in realtime.

.. figure:: /images/2.8/start.jpg
:align: center

The default behaviour of Pro Align Tools.

|
To better see what's going on, enable the little **bounding box button** next to the **Origin point** panel at the Sidebar (**N**).
This allows you to see the considered bound box that is being used while your alignment is taking place.

.. figure:: /images/2.8/start_origin_panel.jpg
:align: center
:width: 40%

Enabling the drawing of bounding boxes for objects.

|
Now you can see that your objects have a bound box from where the origin of the translation is being picked up.

.. figure:: /images/2.8/start_boxes.jpg
:align: center

The bound box helps to understand how is the alignment being performed.

|
To switch fast between the levels of alignment relative to the plane, use the **Alignment depth** buttons on top.
This is just a predefined configuration of alignment that automatically takes the origin point on your object to make it go to one side or its opposite in relation to the projection Plane.

.. figure:: /images/2.8/alignments_left.jpg
:align: center
:width: 40%

Align your object to the 'left' (negative direction of the current plane)


.. figure:: /images/2.8/start_alignment_left.jpg
:align: center

The alignment has changed.

As you can see, your objects get aligned to the other side of the projection Plane, and the origin points from where the translations were being taken, had moved from one side of the bound box to the other.

|
Try the centered alignment.

.. figure:: /images/2.8/alignments_center.jpg
:align: center
:width: 40%

The preset for a centered alignment.


.. figure:: /images/2.8/start_alignment_center.jpg
:align: center

The objects are now centered on the plane.


Now the origin points have moved to the center of the bounding boxes.

Confirm the alignment by pressing the **Align Objects** button at the top of the Sidebar (**N**), or by just pressing the **Enter/Return** key.

.. figure:: /images/2.8/start_aligned.jpg
:align: center

The objects have been aligned to the Plane.


Your objects move to their final position, and the alignment preview is updated, showing a new alignment possible, relative to the selected objects.

When the next alignment allow objects to move, you will see the projection Plane moving to a different position of alignment, otherwise you will only see the projection Plane in the same place and no arrows, as the objects have reached to a static no-move point.

As you may have noticed, your last settings are remembered per session, that means that you can easily apply the same alignment to different selections of objects until you close Blender.

10 changes: 10 additions & 0 deletions source/doc/introduction/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Introduction
============

.. toctree::
:maxdepth: 1

access
sidebar
first_time

0 comments on commit 1effbb5

Please sign in to comment.