diff options
author | dpope <daniel.pope@nokia.com> | 2012-02-03 15:45:25 +1000 |
---|---|---|
committer | Rohan McGovern <rohan.mcgovern@nokia.com> | 2012-02-10 07:24:48 +0100 |
commit | bc66ec0bc5f548a72d21557d529f2d03c7417f09 (patch) | |
tree | 53aa0444fc698cde712fb8e0486e3da1a56f853d /doc/src | |
parent | 98451b5e136af38b00b008ae58ec8243c981eee4 (diff) |
Change-Id: I271146636615ab16f79ad3e66985076e2bd7a95c
Reviewed-by: Sarah Jane Smith <sarah.j.smith@nokia.com>
Diffstat (limited to 'doc/src')
141 files changed, 0 insertions, 5952 deletions
diff --git a/doc/src/acceptance/qt3d-acceptance.qdoc b/doc/src/acceptance/qt3d-acceptance.qdoc deleted file mode 100644 index a60c6dfa..00000000 --- a/doc/src/acceptance/qt3d-acceptance.qdoc +++ /dev/null @@ -1,239 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page qt3d-acceptance.html - \title Acceptance tests for Qt3D - \keyword Acceptance - - As described in the \l{index.html}{Introduction} Qt3D is the C++ framework - that underlies QtQuick3D. - - This section of the documentation contains some recommended - acceptance tests for use when verifying that Qt3D has been - successfully ported to a new platform or device, and to - determine if the major features of Qt3D work correctly prior - to a release. The list of tests is not intended to be exhaustive. - - When \l{Contributing to Qt3D}{reporting bugs}, please include - as much information as possible about your platform and particularly - its OpenGL implementation. The \c{qglinfo} program in the Qt3D - source tree can be used to collect up information about the OpenGL - version, features, and extensions. On X11 systems, usually - \c{glxinfo} can be run to obtain similar information. - - \section1 Packaging Verification - - Where Qt Quick 3D has been packaged into a new packaging format, follow - these steps to confirm that the newly installed package has validly set - up a correct Qt Quick 3D environment. - - 1) Launch Qt Creator - - 2) Choose "File" > "New File or Project..." - - 3) Choose "Qt Quick Project" > "Qt Quick UI", press "Choose..." - - 4) Name the project "acceptance" and leave the default location - - 5) A template with QML code is generated. Edit the code so that it - appears as follows: - - \code - import QtQuick 1.0 - import Qt3D 1.0 - - Viewport { width: 400; height: 400 } - \endcode - - 6) Choose "File" > "Save" - - 7) Select the "Projects" tab, and set the "Qt Version:" to be the - path of the qmake binary for the Qt where the newly installed - Qt Quick 3D is located. Use the "Manage" button to add this Qt - to the list if necessary. - - 8) If the package is correctly installed the code above should be - clear of any error-underlining (a red wavy line indicating a problem). - - 9) Choose "Build" > "Run", ensuring the "acceptance" project is - selected. - - 10) A 400 x 400 black viewport should be displayed. - - - \section1 Basic bring-up - - A pre-requisite for the acceptance tests is that Qt and Qt3D have - been built and installed in accordance with the - \l{Building QtQuick3D}{build instructions}. In particular, Qt must - be configured with OpenGL support and QGLWidget must be working. - - First, run all unit tests on the platform or device and verify that - they all pass (\l{Contributing to Qt3D}{report bugs} for those that - do not pass). The "make check" rule can be used to run the - unit tests if you are not cross-compiling. For cross-compile - environments, copy all of the \c{tst_*} binaries under \c{tests/auto} - to the device and run them. - - Next, run the \l{Teapot Example} and verify that it looks similar - to the following picture: - - \image teapot-screenshot.png - - Verify that there is no horizontal or vertical distortion, - as shown in the following pictures: - - \raw HTML - <center><table><tr><td> - \endraw - \image teapot-distortion.png - \raw HTML - </td><td> - \endraw - \image teapot-distortion2.png - \raw HTML - </td></tr></table></center> - \endraw - - Resize the window if possible. The teapot should change scale but - keep its relative horizontal and vertical size without distortion. - Next, verify that the teapot can be rotated using either the mouse - or the cursor keys: - - \image teapot-rotated.png - - If the teapot does not appear at all, then check stdout for any - error and warning messages from the GLSL shader compiler. - - \section1 Animations - - Run the \l{Basket Example} and verify that the basket spins on - its vertical axis, and continues to do so as the window is - resized or the orientiation is changed with the mouse or keyboard. - The model should also be textured with a basket weave pattern: - - \image basket-screenshot.png - - Running the basket example with the environment variable - \c{QT3D_LOG_EVENTS} set to 1 should produce some qDebug() - output that indicates the number of milliseconds per frame, - and hence the frame rate: - - \code - $ QT3D_LOG_EVENTS=1 ./basket - ... - LOG[0:00:01.681]: ENTER: QGLView::paintGL (16 ms since last enter) - LOG[0:00:01.681]: LEAVE: QGLView::paintGL (0 ms elapsed) - LOG[0:00:01.696]: ENTER: QGLView::paintGL (15 ms since last enter) - LOG[0:00:01.696]: LEAVE: QGLView::paintGL (0 ms elapsed) - LOG[0:00:01.713]: ENTER: QGLView::paintGL (17 ms since last enter) - ... - \endcode - - If the basket does not spin, then try to determine if - \c{BasketView::paintGL()} is being called every frame or not. - If it is being called over and over, then the problem - may be in Qt3D. But if it is not being called repeatedly, then - it could be a problem in Qt's animation framework or QGLWidget - update processing. - - \section1 Rendering into a framebuffer object - - Run the \l{qt3d/nesting}{Nesting} example to test if rendering into a - framebuffer object works: - - \image nesting-screenshot.png - - The teapot on the side of the blue cube is the part of the scene - that uses a framebuffer object. The teapot should be spinning. - - This test also checks that alpha blending works in the underlying - OpenGL implementation. - - \section1 Model loading - - Run the \l{Loading a 3DS model with Qt3D}{Penguin} example - to check that 3DS model loading basically works: - - \image penguin-screenshot.png - - If the model fails to appear, it is possible that the 3DS - plug-in has not been installed correctly or it could not - be located at runtime. It is recommended that you set the - \c{QT_DEBUG_PLUGINS} environment variable to 1 to get extra - information about why the plug-in could not be loaded. - - \section1 QtQuick3D Verification - - Run the QtQuick3D version of the bouncing - \l{Teapot Example in QtQuick3D}{Teapot Example} using - "qmlviewer -opengl teapot-bounce.qml". The teapot should have a - shiny appearence (compared to the grey teapot above) and bounce - up and down: - - \image teapot-china-screenshot.png - - It should be possible to rotate the teapot using the mouse - and keyboard. - - Note that when running QtQuick3D examples on a device that both the - QML files and the model files must be copied to the device (the model - file is "teapot.bez" in the case of the bouncing teapot example). - - \section1 Object picking - - Run the QtQuick3D \l{Tea Service Demo in QML}{Tea Service} demo - with "qmlviewer -opengl teaservice.qml". Click on the teapot, teacups, - and teaspoons to make them jump up, and click on the teapot - spout and handle for other effects. This example tests object - picking and QML animations. - - \image teaservice-qml-screenshot.png - - Note: It may be necessary to adjust the width and height properties - in teaservice.qml to match the device's screen size. - - \section1 Build tests - - The Qt3D code base contains a number of \c{#ifdef} statements - that may cause the build to fail in non-default Qt configurations - or when strict API options are enabled. It is recommended that - these configurations be verified periodically, particularly - prior to a release. - - \code - qmake opengl.pro \ - DEFINES+=QT_NO_DEBUG_STREAM \ - DEFINES+=QT_NO_DATASTREAM \ - DEFINES+=QT_NO_CAST_FROM_BYTEARRAY \ - DEFINES+=QT_NO_CAST_TO_ASCII \ - DEFINES+=QT_NO_CAST_FROM_ASCII - \endcode - - \l{index.html}{Return to the main Qt3D page}. -*/ diff --git a/doc/src/camera-frustum.qdoc b/doc/src/camera-frustum.qdoc deleted file mode 100644 index 789f9ad9..00000000 --- a/doc/src/camera-frustum.qdoc +++ /dev/null @@ -1,240 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \ingroup qt3d - \ingroup qt3d::math - \since 4.8 - \title Camera and View Frustum - \page qt3d-camera-frustum.html - \keyword Camera View Frustum - \brief Basis for the vamera and view frustum culling test. - - The QGLCamera class provides useful viewing functionality, such as being able - to position and orient view point within a scene. In combination with the - QGLPainter::isCullable() function, basic view frustum culling is available. - To understand in more depth these concepts, or to verify the implementation - more details of these are presented here. To simply use the functionality - read the documentation. - - \list - \o QGLCamera - \o QGLPainter::isCullable() - \endlist - - \section1 The Default Camera - - Qt3D uses the OpenGL co-ordinate system, that is a right-handed system. In - this system you can think of X as pointing to the right, Y as pointing up and - Z as pointing toward you. If you hold your right-hand so that the thumb, - index and middle fingers are all at right angles to each other, then - - \list - \o Thumb - X axis - points to the right - \o Index - Y axis - points upward - \o Middle - Z axis - points toward you - \endlist - - When you first create a QGLCamera object, by default it has - \code - QGLCamera camera; - qDebug() camera; - -- - // displays: - QGLCamera - projection: Perspective -- viewsize: 2 x 2 - near-plane: 5 -- far-plane: 1000 -- field-of-view: 0 - rotation: 0 -- motion adjust: QVector3D(0, 0, 1) -- aspect adjust: true - eye: QVector3D(0, 0, 10) -- center: QVector3D(0, 0, 0) -- up: QVector3D(0, 1, 0) - \endcode - - In the visualisation just mentioned, with positive Z pointing toward you the - camera is sitting at the tip of your middle finger, looking in the same - direction you are, that is down toward the negative end of the Z axis. - - \section1 Positioning a Custom Camera. - - In this image we have a camera positioned with the following settings: - \code - camera.setNearPlane(2.2f); - camera.setFarPlane(14.0f); - camera.setViewSize(QSizeF(1.257f, 1.257f)); - camera.setEye(QVector3D(0, 0, -8.0f)); - \endcode - - This screen capture from a 3D modelling program shows how this camera is - set up in a scene, where its viewing a cube. The image shows a purple area - which indicates the \i{view frustum}, which you can think of for - now as the area captured by the camera. Actually its more correct to think - of the volume captured by the camera, and imagine that the purple indication - in the image is the shadow cast by this volume. - - \image view-frustum-angle-shot.png - - The odd value for view size comes from the far plane size which was set at - 8 x 8 when creating the diagram: by similar triangles (8 / 14) x 2.2 = 1.257. - There is no API call for setting the size of the far-plane, same as in OpenGL. - So to get this 8 x 8 far plane we had to work out the near plane size. - - \image view-frustum-origin.png - - This plan view shows the parameters of the camera by reference to a grid. - You can see that the camera is situated - by QGLCamera::setEye() - to a point - 8 units back along the negative z axis. The far plane is 14 units away from - the eye - set by QGLCamera::setFarPlane(). - - Note that here also the camera is sitting down the negative z axis, looking - back toward us - the opposite of the default. Its near plane and far plane - are also much closer. The camera is still pointing to the origin - where a - 3D cube is situated, ready to be viewed by the camera. - - \section1 The View Frustum - - The camera can only see a \bold part of the scene - not all of it. Anything - too far to the camera's right or left is out of the range of its view, and - even though that part of the scene may contain geometry that is sent to the GPU - for processing, those triangles will not be visible on the screen. The GPU - will clip them away - but it still has to do work to do this. - - The part of the scene which the camera can see, and which will get displayed - is called the \bold{View Frustum}. A Frustum is a geometric shape, like a - pyramid with its top cut off. It has sloping sides due to the perspective - transformation performed by OpenGL, when simulating the effect of the camera - in the 3D scene. - - The cube in this scene has 6 sides, just like the view frustum, so we can - compare the names of these: - - \table - \header - \o Cube - \o View Frustum - \row - \o Front - \o Near Plane - \row - \o Back - \o Far Plane - \row - \o Left side - \o Left side - \row - \o Right side - \o Right side - \row - \o Top - \o Top - \row - \o Bottom - \o Bottom - \endtable - - Like the cube, the frustum is a solid, and can contain things. You can think of - it as having a set of bounds. Anything inside these bounds is rendered by OpenGL. - - \image view-frustum-10-degrees-angle-shot.png - - In this image, we see the camera as a black-line wire-frame. The rectangle of the - front of the camera represents the \bold{aperture}. - - The triangular purple colored area on the floor corresponds to the camera's eye - and spreads out, as determined by the size of the camera's aperture. If you extended - the lines from the camera's eye to the four corners of its aperture, those lines would - define the view frustum. That view frustum would be the same size as the purple - view triangle, except the part behind the camera aperture is sliced off. - - Anything that falls inside the black wire-frame of the camera itself \bold{does not - get displayed}. - - Because the scene needs to be projected onto a camera aperture of a non-zero size, - this means there is this area between the eye of the camera and its aperture which - cannot be displayed. Notice that the camera aperture and the Near Plane of the view - frustum are the same thing. - - We can also say that anything which falls outside the fiew frustum \bold{does not get - displayed} including anything in front of the near plane. Poor camera positioning - in a scene can often result in this near plane culling which can produce odd visual - effects as geometry appears and disappears when it passes in front and behind of - the near plane. - - \section1 View Frustum Culling - - Carefully examine the next 3 screenshots, which show the same plan view of the - camera, cube and view - except the cube is rotated arount the eye of the camera - by 10 degrees each time. - - \image view-frustum-10-degrees.png - - In this image the cube is slightly out of the view frustum. It still must be sent - to the GPU, but some of its pixels will be clipped off during rendering. - - \image view-frustum-20-degrees.png - - In this image the cube is mostly out of the view frustum. It still must be sent - to the GPU, but most of its pixels will be clipped off during rendering. - - \image view-frustum-30-degrees.png - - In this image the cube is completey out of the view frustum. Performance could be - improved by not sending the cubes geometry to the GPU at all. This test must - be made on the CPU side, so therefore it must be very cheap to do in order to beat - the cost of just sending it anyway and allowing the GPU to clip away all of it. - - The optimisation technique where you detect this case is called \bold{View Frustum - Culling} and it can a simple and valuable performance enhancement. Qt3D implements - view frustum culling via the QGLPainter::isCullable() function. - - \section1 Aspect-Ratio Correction - - The default camera has a viewport which is 2 x 2 in size, as discussed above. However - when the camera is used to display a scene on a QGLAbstractSurface, for example a - QGLWidgetSurface, the \bold{aspect ratio} of that surface is taken into account in - the View Frustum. Specifically code in the QGLCamera::projectionMatrix() function - takes the aspect ratio and expands the default viewport to match. If the surface is - wider than it is high, the aspect ratio is greater than 1 and the viewport width is - multiplied by the aspect ratio to make it larger. If the surface is higher than it - is wide, the aspect ratio is less than 1 and the viewport height is divided by the - aspect ratio to make it larger. The result is the viewport aspect ratio matches that - of the surface it is to be displayed on. - - \code - QGLWidget widget; // creates a 640 x 480 widget by default - QGLPainter painter(&widget) // internally makes a 640 x 480 QGLWidgetSurface - qreal asp = painter.currentSurface()->aspectRatio(); - // asp == 1.3333 which is (640 / 480) - QGLCamera camera; // default camera as above - painter.setCamera(&camera); // applies the aspect ratio to the perspective projection - QMatrix4x4 p = painter.projectionMatrix().top(); - QMatrix4x4 q; - q.frustum(-asp, asp, -1, 1, camera.nearPlane(), camera.farPlane()); - qDebug() << q == p; // prints "true" - \endcode - - One result of this is that clipping to the view frustum can only be done with the - knowledge of the surface because more of the scene is visible to the left and right - than would be suggested by the default camera settings. -*/ diff --git a/doc/src/classes.qdoc b/doc/src/classes.qdoc deleted file mode 100644 index a81d9e5c..00000000 --- a/doc/src/classes.qdoc +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \group classlists - \title Class and Function Documentation - \brief Lists and Indexes of classes, functions, and types. - - Links to indexes and lists for finding class and function - reference documentation. - - \section2 Class Lists - - \annotatedlist classlists - - \section2 Function Lists - - \annotatedlist funclists - -*/ - -/*! - \page classes.html - \title All Qt3D Classes - \ingroup classlists - - \brief If you know the name of the class you want, find it here. - - This is a list of all Qt3D classes. - - \generatelist classes - -*/ - -/*! - \page annotated.html - \title Annotated Class List - \ingroup classlists - - \brief If you don't know the name of the class you want, but you - know what the class should do, you might try looking here. - - Qt3D API classes with brief descriptions: - - \generatelist annotatedclasses -*/ - - -/*! - \page hierarchy.html - - \title Inheritance Hierarchy - \ingroup classlists - - \brief The C++ class inheritance hierarchy for all classes in the - Qt3D API. - - \generatelist classhierarchy -*/ - - - -/*! - \page functions.html - \title All Functions - \ingroup funclists - - \brief All documented Qt3D functions listed alphabetically with a - link to where each one is declared. - - This is the list of all documented member functions and global - functions in the Qt3D API. Each function has a link to the class or - header file where it is declared and documented. - - \generatelist functionindex -*/ diff --git a/doc/src/classic.css b/doc/src/classic.css deleted file mode 100644 index 59fa9dc3..00000000 --- a/doc/src/classic.css +++ /dev/null @@ -1,284 +0,0 @@ -BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { - font-family: Arial, Geneva, Helvetica, sans-serif; -} -H1 { - text-align: center; - font-size: 160%; -} -H2 { - font-size: 120%; -} -H3 { - font-size: 100%; -} - -h3.fn,span.fn -{ - background-color: #eee; - border-width: 1px; - border-style: solid; - border-color: #ddd; - font-weight: bold; - padding: 6px 0px 6px 10px; - margin: 42px 0px 0px 0px; -} - -hr { - border: 0; - color: #a0a0a0; - background-color: #ccc; - height: 1px; - width: 100%; - text-align: left; - margin: 34px 0px 34px 0px; -} - -table.valuelist { - border-width: 1px 1px 1px 1px; - border-style: solid; - border-color: #dddddd; - border-collapse: collapse; - background-color: #f0f0f0; -} - -table.indextable { - border-width: 1px 1px 1px 1px; - border-style: solid; - border-collapse: collapse; - background-color: #f0f0f0; - border-color:#555; - font-size: 100%; -} - -table td.largeindex { - border-width: 1px 1px 1px 1px; - border-collapse: collapse; - background-color: #f0f0f0; - border-color:#555; - font-size: 120%; -} - -table.valuelist th { - border-width: 1px 1px 1px 2px; - padding: 4px; - border-style: solid; - border-color: #666; - color:white; - background-color:#666; -} - -th.titleheader { - border-width: 1px 0px 1px 0px; - padding: 2px; - border-style: solid; - border-color: #666; - color:white; - background-color:#555; - background-image:url('images/gradient.png')}; - background-repeat: repeat-x; - font-size: 100%; -} - - -th.largeheader { - border-width: 1px 0px 1px 0px; - padding: 4px; - border-style: solid; - border-color: #444; - color:white; - background-color:#555555; - font-size: 120%; -} - -p { - - margin-left: 4px; - margin-top: 8px; - margin-bottom: 8px; -} - -a:link -{ - color: #0046ad; - text-decoration: none -} - -a:visited -{ - color: #672967; - text-decoration: none -} - -a.obsolete -{ - color: #661100; - text-decoration: none -} - -a.compat -{ - color: #661100; - text-decoration: none -} - -a.obsolete:visited -{ - color: #995500; - text-decoration: none -} - -a.compat:visited -{ - color: #995500; - text-decoration: none -} - -body -{ - background: #ffffff; - color: black -} - -table.generic, table.annotated -{ - border-width: 1px; - border-color:#bbb; - border-style:solid; - border-collapse:collapse; -} - -table td.memItemLeft { - width: 180px; - padding: 2px 0px 0px 8px; - margin: 4px; - border-width: 1px; - border-color: #E0E0E0; - border-style: none; - font-size: 100%; - white-space: nowrap -} - -table td.memItemRight { - padding: 2px 8px 0px 8px; - margin: 4px; - border-width: 1px; - border-color: #E0E0E0; - border-style: none; - font-size: 100%; -} - -table tr.odd { - background: #f0f0f0; - color: black; -} - -table tr.even { - background: #e4e4e4; - color: black; -} - -table.annotated th { - padding: 3px; - text-align: left -} - -table.annotated td { - padding: 3px; -} - -table tr pre -{ - padding-top: 0px; - padding-bottom: 0px; - padding-left: 0px; - padding-right: 0px; - border: none; - background: none -} - -tr.qt-style -{ - background: #96E066; - color: black -} - -body pre -{ - padding: 0.2em; - border: #e7e7e7 1px solid; - background: #f1f1f1; - color: black -} - -table tr.qt-code pre -{ - padding: 0.2em; - border: #e7e7e7 1px solid; - background: #f1f1f1; - color: black -} - -span.preprocessor, span.preprocessor a -{ - color: darkblue; -} - -span.comment -{ - color: darkred; - font-style: italic -} - -span.string,span.char -{ - color: darkgreen; -} - -.title -{ - text-align: center -} - -.subtitle -{ - font-size: 0.8em -} - -.small-subtitle -{ - font-size: 0.65em -} - -.qmlitem { - padding: 0; -} - -.qmlname { - white-space: nowrap; -} - -.qmltype { - text-align: center; - font-size: 160%; -} - -.qmlproto { - background-color: #eee; - border-width: 1px; - border-style: solid; - border-color: #ddd; - font-weight: bold; - padding: 6px 10px 6px 10px; - margin: 42px 0px 0px 0px; -} - -.qmlreadonly { - float: right; - color: red -} - -.qmldoc { -} - -*.qmlitem p { -} diff --git a/doc/src/demos/monkeygod.qdoc b/doc/src/demos/monkeygod.qdoc deleted file mode 100644 index 86973fcb..00000000 --- a/doc/src/demos/monkeygod.qdoc +++ /dev/null @@ -1,38 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example quick3d/monkeygod - \title Monkey God in QML - - The Monkey God demo in QML shows how QML/3D can be used to build - up complex 3D scenes including materials and animations. - - \image monkeygod-screenshot.png - - \l{qt3d-examples.html}{Return to Examples}. -*/ diff --git a/doc/src/demos/pageflip.qdoc b/doc/src/demos/pageflip.qdoc deleted file mode 100644 index 486ab2f0..00000000 --- a/doc/src/demos/pageflip.qdoc +++ /dev/null @@ -1,39 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example qt3d/pageflip - \title Page Flip Demo - - The Page Flip demo shows how Qt3D can be used to animate - flipping pages in a book. A shader program is used to combine a - gradient texture with the page textures to create a curl effect. - - \image pageflip-screenshot.png - - \l{qt3d-examples.html}{Return to Examples}. -*/ diff --git a/doc/src/demos/shapes.qdoc b/doc/src/demos/shapes.qdoc deleted file mode 100644 index 3bba9d93..00000000 --- a/doc/src/demos/shapes.qdoc +++ /dev/null @@ -1,38 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example qt3d/shapes - \title Shapes Demo - - The Shapes demo shows many of the basic shapes that can be - drawn using Qt3D. - - \image shapes-screenshot.png - - \l{qt3d-examples.html}{Return to Examples}. -*/ diff --git a/doc/src/demos/teaservice-qml.qdoc b/doc/src/demos/teaservice-qml.qdoc deleted file mode 100644 index 77cdf064..00000000 --- a/doc/src/demos/teaservice-qml.qdoc +++ /dev/null @@ -1,44 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example quick3d/tea_service - \title Tea Service Demo in QML - - The Tea Service demo in QML shows how QML/3D can be used to draw a complex - scene made up of several objects. It also demonstrates object picking, - animations, states and transitions. - - \image teaservice-qml-screenshot.png - - There is also a \l{Tea Service Demo}{C++ version} of this demo, - which is not as visually interesting as the QML/3D version. - It is much easier to implement interaction models and - animations in QML than in C++. - - \l{qt3d-examples.html}{Return to Examples}. -*/ diff --git a/doc/src/demos/teaservice.qdoc b/doc/src/demos/teaservice.qdoc deleted file mode 100644 index 2a067227..00000000 --- a/doc/src/demos/teaservice.qdoc +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example qt3d/teaservice - \title Tea Service Demo - - The Tea Service demo shows how Qt3D can be used to draw a complex - scene made up of several objects. It also demonstrates object picking. - - \image teaservice-screenshot.png - - There is also a \l{Tea Service Demo in QML}{QML version} of the - Tea Service demo which has more advanced object picking, animations, - states, and transitions. It is much easier to add complex - interaction models and animations in QML than in C++. - - \l{qt3d-examples.html}{Return to Examples}. -*/ diff --git a/doc/src/examples/basket.qdoc b/doc/src/examples/basket.qdoc deleted file mode 100644 index 92a429a3..00000000 --- a/doc/src/examples/basket.qdoc +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example quick3d/basket - \title Basket Example - - \section2 Basket in QtQuick3D - - The QtQuick3D version of the basket example is very similar in - structure to the C++ version above, but much simpler. - We start by defining a viewport with a specific camera position: - - \snippet quick3d/basket/qml/basket.qml 1 - - We then add an \l Item3D object to load the basket model and - apply the desired texture to it: - - \snippet quick3d/basket/qml/basket.qml 2 - - And then we apply an animation to the rotation component of - the item's transform property: - - \snippet quick3d/basket/qml/basket.qml 3 - - \section2 Basket in Qt3D - - The Basket example shows how Qt3D can be used to draw an animated - object covered in a texture. The basic application shell is similar - to the \l{qt3d/teapot}{Hello Teapot} example. In this case, we create - the basket object and add a texture to it as follows: - - \snippet qt3d/basket/basketview.cpp 1 - - For this animation, we want to spin the basket around its Y axis, - once every 2 seconds. We first declare an \c angle property in the - class declaration (calling \c{update()} will force the view to - redraw whenever the angle changes): - - \snippet qt3d/basket/basketview.h 1 - - Then we create a QPropertyAnimation object that will update - \c angle every time through the event loop with a new value - between 0 and 360 degrees: - - \snippet qt3d/basket/basketview.cpp 2 - - Now all we have to do is draw the basket using the \c angle - property every time \c{paintGL()} is called: - - \snippet qt3d/basket/basketview.cpp 3 - - \image basket-screenshot.png - - \l{qt3d-examples.html}{Return to Examples}. -*/ diff --git a/doc/src/examples/nesting.qdoc b/doc/src/examples/nesting.qdoc deleted file mode 100644 index b4438bb8..00000000 --- a/doc/src/examples/nesting.qdoc +++ /dev/null @@ -1,134 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example qt3d/nesting - \title Drawing into framebuffer objects - - The Nesting example shows how Qt3D can be used to draw into a - framebuffer object and then use the associated texture in - subsequent drawing operations. It is assumed that the reader - is already familar with the following examples: - - \list - \o \l{Teapot Example}{Hello Teapot} - drawing a basic object in 3D. - \o \l{Object Effects}{Cube} - applying transformations and materials to objects. - \endlist - - In this example we are going to draw two rotating and transparent - cubes. One cube will display a simple texture as in the - \l{Object Effects}{Cube} example, - and the other cube will display a nested scene containing a - rotating teapot. - - \image nesting-screenshot.png - - As with the other examples, we start by creating the geometric objects - we need in the constructor (we will share the cube geometry between - the two cubes we will be drawing): - - \snippet qt3d/nesting/cubeview.cpp 1 - - We also need three QPropertyAnimation objects to drive our - animations; rotation angle for the teapot, rotation angle for - the cube; orbit angle of the two cubes around each other: - - \snippet qt3d/nesting/cubeview.cpp 2 - - The final step in the constructor is to create a camera for - the nested scene we will be drawing into the framebuffer object. - This is in addition to the default QGLView::camera() object that - provides the camera for the main scene. - - \snippet qt3d/nesting/cubeview.cpp 3 - - To draw the nested scene, we of course need a framebuffer object, - which we create in the \c{initializeGL()} method: - - \snippet qt3d/nesting/cubeview.cpp 4 - - Note that we also set the framebuffer object on an instance of - QGLFramebufferObjectSurface. We will use this fact later when - we render the nested scene. - - For the other cube, we need a regular texture. And we'll also - turn on blending to make our cubes transparent: - - \snippet qt3d/nesting/cubeview.cpp 5 - - Now it is time to paint the scene in \c{paintGL()}. The first - thing we want to do is draw the teapot into the framebuffer object. - To do that, we need to establish a nested drawing state: - - \snippet qt3d/nesting/cubeview.cpp 6 - - In the code above, we first push the main scene's modelview and - projection matrices. And then we push a new drawing surface onto - the painter's surface stack. Everything we draw from now on will - be written to \c{fboSurface} and thus the framebuffer object. - To do that, we set the inner camera position, adjust the painter - state, clear the framebuffer object, and draw the teapot: - - \snippet qt3d/nesting/cubeview.cpp 7 - - Now that the nested scene has been drawn to the framebuffer object, - we pop the surface and matrix stacks to return to the main scene: - - \snippet qt3d/nesting/cubeview.cpp 8 - - Because our cubes are transparent, we need to make sure we draw - the objects in the scene from back to front. Otherwise the result - will not look correct. To do this, we check which of the cube - mid-points is furtherest away from the camera and draw that cube first - (the more negative the z value, the further away it is): - - \snippet qt3d/nesting/cubeview.cpp 9 - - Drawing the first cube with the simple texture is very similar to - the \l{Object Effects}{Cube} example: - - \snippet qt3d/nesting/cubeview.cpp 10 - - The main interesting wrinkle is that we draw the cube twice, - once with front faces culled, and the second time with back - faces culled. This effectively causes the cube to be drawn - back to front for proper blending. - - The second cube is drawn in a similar way except that we bind - the framebuffer object's texture to the state instead of a static - texture: - - \snippet qt3d/nesting/cubeview.cpp 11 - - Face culling is a simple way to draw transparent objects, but it - really only works on non-intersecting convex objects like our cubes. - For concave objects (like the teapot) or objects that intersect, - we would need to break the objects up into smaller convex pieces - and then order the pieces from back to front. - - \l{qt3d-examples.html}{Return to Examples}. -*/ diff --git a/doc/src/examples/teapot-qml.qdoc b/doc/src/examples/teapot-qml.qdoc deleted file mode 100644 index 5374edb7..00000000 --- a/doc/src/examples/teapot-qml.qdoc +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example quick3d/teapot_qml - \title Teapot Example in QtQuick3D - - This example shows to use QtQuick3D to display a teapot on - the screen. The QML is fairly simple: - - \snippet quick3d/teapot_qml/qml/teapot.qml 1 - - \image teapot-qml-screenshot.png - - The example starts by importing the Qt and Qt3D QML modules: - - \snippet quick3d/teapot_qml/qml/teapot.qml 2 - - Then we create a viewport of size 640x480 to display the teapot: - - \snippet quick3d/teapot_qml/qml/teapot.qml 3 - - And now we create a \l Item3D to display the teapot with a - default lit material effect: - - \snippet quick3d/teapot_qml/qml/teapot.qml 4 - - The teapot data itself is loaded from \c{teapot.bez}, which contains - Bezier patch data that describes the geometry of the teapot. - - Let's make the teapot a little more interesting by adding a - material to simulate bone china: - - \snippet quick3d/teapot_bounce_qml/qml/teapot-bounce.qml 1 - \snippet quick3d/teapot_bounce_qml/qml/teapot-bounce.qml 2 - - \image teapot-china-screenshot.png - - To make the teapot even more interesting, we can cause it to - bounce up and down using a QML animation item: - - \snippet quick3d/teapot_bounce_qml/qml/teapot-bounce.qml 3 - - This QML teapot example can be compared with the \l{qt3d/teapot}{C++ version}. - Using QML is briefer than C++, and easier to modify to adjust - materials and add new features like animations. - - \l{qt3d-examples.html}{Return to Examples}. -*/ diff --git a/doc/src/examples/teapot.qdoc b/doc/src/examples/teapot.qdoc deleted file mode 100644 index d85fca48..00000000 --- a/doc/src/examples/teapot.qdoc +++ /dev/null @@ -1,101 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example qt3d/teapot - \title Teapot Example - - The Teapot example shows how Qt3D can be used to draw a simple - teapot object with a perspective camera view in C++. There is - also a \l{Teapot Example in QtQuick3D}{QtQuick3D version} of the teapot - example. - - We start by defining a class that inherits from QGLView, which - provides some basic scene setup logic and 3D camera navigation: - - \snippet qt3d/teapot/teapotview.h class-defn - \dots - \quotefromfile qt3d/teapot/main.cpp - \skipuntil [main] - \printto [main-args] - \skipuntil [main-args-end] - \printto [main] - - When the application starts up, we set up some scene parameters - in the \c{initializeGL()} function: - - \quotefromfile qt3d/teapot/teapotview.cpp - \skipuntil [initialize] - \printto [build-geometry] - - The first line of the function selects a standard rendering - effect that lights material colors with the default OpenGL - two-sided lighting algorithm and the default light. - - The \c{teapot} member variable is an instance of QGLSceneNode, - which we create using QGLBuilder during \c{initializeGL()}: - - \quotefromfile qt3d/teapot/teapotview.cpp - \skipuntil [build-geometry] - \printto [initialize] - - The QGLTeapot class represents the geometry for the teapot, - which is added to the builder with the \c{<<} operator. - - We then call QGLBuilder::finalizedSceneNode() to finalize the - object, prepare it to be uploaded to the GL server as a - vertex buffer, and hand over ownership of the scene node. - - We have to take care to clean up our scene after we're done with it - and here that is done in the destructor: - - \snippet qt3d/teapot/teapotview.cpp destructor - - Finally, we paint the teapot every time the window is refreshed: - - \snippet qt3d/teapot/teapotview.cpp paint - - The QGLView class has in-built support for camera navigation - using the mouse and keyboard. By clicking and dragging the mouse, - the teapot can be rotated into any position. The image on the - left shows the view in its startup default position, and the - image on the right shows the view after rotation using the mouse: - - \raw HTML - <center><table><tr><td> - \endraw - \image teapot-screenshot.png - \raw HTML - </td><td> - \endraw - \image teapot-rotated.png - \raw HTML - </td></tr></table></center> - \endraw - - \l{qt3d-examples.html}{Return to Examples}. -*/ diff --git a/doc/src/images/REAME-ODF b/doc/src/images/REAME-ODF deleted file mode 100644 index 6d1a820b..00000000 --- a/doc/src/images/REAME-ODF +++ /dev/null @@ -1,5 +0,0 @@ -The *.odf files here are OpenOffice formula files. - -To edit the formulas shown here as png's, open the corresponding odf file -with OpenOffices formula editor, edit, save, then export as PDF. The -PDF can be opened with gimp to create a PNG. diff --git a/doc/src/images/affine-transform.odf b/doc/src/images/affine-transform.odf Binary files differdeleted file mode 100644 index 4ead5cca..00000000 --- a/doc/src/images/affine-transform.odf +++ /dev/null diff --git a/doc/src/images/affine-transform.png b/doc/src/images/affine-transform.png Binary files differdeleted file mode 100644 index c520623f..00000000 --- a/doc/src/images/affine-transform.png +++ /dev/null diff --git a/doc/src/images/attenuation.odf b/doc/src/images/attenuation.odf Binary files differdeleted file mode 100644 index a3c35333..00000000 --- a/doc/src/images/attenuation.odf +++ /dev/null diff --git a/doc/src/images/attenuation.png b/doc/src/images/attenuation.png Binary files differdeleted file mode 100644 index fa64ebed..00000000 --- a/doc/src/images/attenuation.png +++ /dev/null diff --git a/doc/src/images/basket-screenshot.png b/doc/src/images/basket-screenshot.png Binary files differdeleted file mode 100644 index 21d72a28..00000000 --- a/doc/src/images/basket-screenshot.png +++ /dev/null diff --git a/doc/src/images/build-qt3d-qtcreator-1.png b/doc/src/images/build-qt3d-qtcreator-1.png Binary files differdeleted file mode 100644 index 1e044c5b..00000000 --- a/doc/src/images/build-qt3d-qtcreator-1.png +++ /dev/null diff --git a/doc/src/images/build-qt3d-qtcreator-2.png b/doc/src/images/build-qt3d-qtcreator-2.png Binary files differdeleted file mode 100644 index 962e1387..00000000 --- a/doc/src/images/build-qt3d-qtcreator-2.png +++ /dev/null diff --git a/doc/src/images/build-qt3d-qtcreator-3.png b/doc/src/images/build-qt3d-qtcreator-3.png Binary files differdeleted file mode 100644 index 02b077c0..00000000 --- a/doc/src/images/build-qt3d-qtcreator-3.png +++ /dev/null diff --git a/doc/src/images/build-qt3d-qtcreator-4.png b/doc/src/images/build-qt3d-qtcreator-4.png Binary files differdeleted file mode 100644 index 171f9837..00000000 --- a/doc/src/images/build-qt3d-qtcreator-4.png +++ /dev/null diff --git a/doc/src/images/build-qt3d-qtcreator-5.png b/doc/src/images/build-qt3d-qtcreator-5.png Binary files differdeleted file mode 100644 index 89956c83..00000000 --- a/doc/src/images/build-qt3d-qtcreator-5.png +++ /dev/null diff --git a/doc/src/images/build-qt3d-qtcreator-6.png b/doc/src/images/build-qt3d-qtcreator-6.png Binary files differdeleted file mode 100644 index 23eca778..00000000 --- a/doc/src/images/build-qt3d-qtcreator-6.png +++ /dev/null diff --git a/doc/src/images/build-qt3d-qtcreator-7.png b/doc/src/images/build-qt3d-qtcreator-7.png Binary files differdeleted file mode 100644 index aa88c4de..00000000 --- a/doc/src/images/build-qt3d-qtcreator-7.png +++ /dev/null diff --git a/doc/src/images/build-qt3d-qtcreator-8.png b/doc/src/images/build-qt3d-qtcreator-8.png Binary files differdeleted file mode 100644 index c6e6db9f..00000000 --- a/doc/src/images/build-qt3d-qtcreator-8.png +++ /dev/null diff --git a/doc/src/images/build-qt3d-qtcreator-9.png b/doc/src/images/build-qt3d-qtcreator-9.png Binary files differdeleted file mode 100644 index 8fce56eb..00000000 --- a/doc/src/images/build-qt3d-qtcreator-9.png +++ /dev/null diff --git a/doc/src/images/build-qt3d-qtcreator-set-to-release.png b/doc/src/images/build-qt3d-qtcreator-set-to-release.png Binary files differdeleted file mode 100644 index 882a80d8..00000000 --- a/doc/src/images/build-qt3d-qtcreator-set-to-release.png +++ /dev/null diff --git a/doc/src/images/cube-screenshot.png b/doc/src/images/cube-screenshot.png Binary files differdeleted file mode 100644 index 56464675..00000000 --- a/doc/src/images/cube-screenshot.png +++ /dev/null diff --git a/doc/src/images/cylinder-texture-coords.png b/doc/src/images/cylinder-texture-coords.png Binary files differdeleted file mode 100644 index 8ad69b43..00000000 --- a/doc/src/images/cylinder-texture-coords.png +++ /dev/null diff --git a/doc/src/images/faceted-q.png b/doc/src/images/faceted-q.png Binary files differdeleted file mode 100644 index a809976b..00000000 --- a/doc/src/images/faceted-q.png +++ /dev/null diff --git a/doc/src/images/forest-screenshot.png b/doc/src/images/forest-screenshot.png Binary files differdeleted file mode 100644 index 9984d0be..00000000 --- a/doc/src/images/forest-screenshot.png +++ /dev/null diff --git a/doc/src/images/forest-screenshot2.png b/doc/src/images/forest-screenshot2.png Binary files differdeleted file mode 100644 index 3de77cfa..00000000 --- a/doc/src/images/forest-screenshot2.png +++ /dev/null diff --git a/doc/src/images/forest-screenshot3.png b/doc/src/images/forest-screenshot3.png Binary files differdeleted file mode 100644 index 5589e2ad..00000000 --- a/doc/src/images/forest-screenshot3.png +++ /dev/null diff --git a/doc/src/images/gradient.png b/doc/src/images/gradient.png Binary files differdeleted file mode 100644 index 2ef36edd..00000000 --- a/doc/src/images/gradient.png +++ /dev/null diff --git a/doc/src/images/imports-dir.png b/doc/src/images/imports-dir.png Binary files differdeleted file mode 100644 index 69528e1a..00000000 --- a/doc/src/images/imports-dir.png +++ /dev/null diff --git a/doc/src/images/line-int-1.png b/doc/src/images/line-int-1.png Binary files differdeleted file mode 100644 index 74e9be24..00000000 --- a/doc/src/images/line-int-1.png +++ /dev/null diff --git a/doc/src/images/line-int-2.png b/doc/src/images/line-int-2.png Binary files differdeleted file mode 100644 index 9ca44374..00000000 --- a/doc/src/images/line-int-2.png +++ /dev/null diff --git a/doc/src/images/line-intersection.odf b/doc/src/images/line-intersection.odf Binary files differdeleted file mode 100644 index 4e0fe2d4..00000000 --- a/doc/src/images/line-intersection.odf +++ /dev/null diff --git a/doc/src/images/line-intersection.pdf b/doc/src/images/line-intersection.pdf Binary files differdeleted file mode 100644 index cf9ef0b4..00000000 --- a/doc/src/images/line-intersection.pdf +++ /dev/null diff --git a/doc/src/images/line-intersection2.odf b/doc/src/images/line-intersection2.odf Binary files differdeleted file mode 100644 index 4e959aff..00000000 --- a/doc/src/images/line-intersection2.odf +++ /dev/null diff --git a/doc/src/images/line-intersection2.pdf b/doc/src/images/line-intersection2.pdf Binary files differdeleted file mode 100644 index bd624790..00000000 --- a/doc/src/images/line-intersection2.pdf +++ /dev/null diff --git a/doc/src/images/monkeygod-screenshot.png b/doc/src/images/monkeygod-screenshot.png Binary files differdeleted file mode 100644 index de8a73d0..00000000 --- a/doc/src/images/monkeygod-screenshot.png +++ /dev/null diff --git a/doc/src/images/moon-screenshot.png b/doc/src/images/moon-screenshot.png Binary files differdeleted file mode 100644 index cafeffff..00000000 --- a/doc/src/images/moon-screenshot.png +++ /dev/null diff --git a/doc/src/images/mouse3dtest-screenshot.png b/doc/src/images/mouse3dtest-screenshot.png Binary files differdeleted file mode 100644 index 518a915e..00000000 --- a/doc/src/images/mouse3dtest-screenshot.png +++ /dev/null diff --git a/doc/src/images/nesting-screenshot.png b/doc/src/images/nesting-screenshot.png Binary files differdeleted file mode 100644 index 9e60ddf1..00000000 --- a/doc/src/images/nesting-screenshot.png +++ /dev/null diff --git a/doc/src/images/normalized.odf b/doc/src/images/normalized.odf Binary files differdeleted file mode 100644 index d75e7044..00000000 --- a/doc/src/images/normalized.odf +++ /dev/null diff --git a/doc/src/images/pageflip-screenshot.png b/doc/src/images/pageflip-screenshot.png Binary files differdeleted file mode 100644 index 2a081a21..00000000 --- a/doc/src/images/pageflip-screenshot.png +++ /dev/null diff --git a/doc/src/images/painter-screenshot.png b/doc/src/images/painter-screenshot.png Binary files differdeleted file mode 100644 index e11a5a34..00000000 --- a/doc/src/images/painter-screenshot.png +++ /dev/null diff --git a/doc/src/images/penguin-0-screenshot.png b/doc/src/images/penguin-0-screenshot.png Binary files differdeleted file mode 100644 index d65d590f..00000000 --- a/doc/src/images/penguin-0-screenshot.png +++ /dev/null diff --git a/doc/src/images/penguin-screenshot.png b/doc/src/images/penguin-screenshot.png Binary files differdeleted file mode 100644 index eb334980..00000000 --- a/doc/src/images/penguin-screenshot.png +++ /dev/null diff --git a/doc/src/images/pvcolor.png b/doc/src/images/pvcolor.png Binary files differdeleted file mode 100644 index 380a19a3..00000000 --- a/doc/src/images/pvcolor.png +++ /dev/null diff --git a/doc/src/images/pyramid-screenshot.png b/doc/src/images/pyramid-screenshot.png Binary files differdeleted file mode 100644 index 6a585a6c..00000000 --- a/doc/src/images/pyramid-screenshot.png +++ /dev/null diff --git a/doc/src/images/qray3d-project.png b/doc/src/images/qray3d-project.png Binary files differdeleted file mode 100644 index 1288f204..00000000 --- a/doc/src/images/qray3d-project.png +++ /dev/null diff --git a/doc/src/images/qt-creator-config-3ds.png b/doc/src/images/qt-creator-config-3ds.png Binary files differdeleted file mode 100644 index 87ac89fd..00000000 --- a/doc/src/images/qt-creator-config-3ds.png +++ /dev/null diff --git a/doc/src/images/qt-creator-lib-path.png b/doc/src/images/qt-creator-lib-path.png Binary files differdeleted file mode 100644 index 5f988437..00000000 --- a/doc/src/images/qt-creator-lib-path.png +++ /dev/null diff --git a/doc/src/images/qt-creator-plugins.png b/doc/src/images/qt-creator-plugins.png Binary files differdeleted file mode 100644 index 8b469ab0..00000000 --- a/doc/src/images/qt-creator-plugins.png +++ /dev/null diff --git a/doc/src/images/qt-creator-shadow-build.png b/doc/src/images/qt-creator-shadow-build.png Binary files differdeleted file mode 100644 index 9b231d5f..00000000 --- a/doc/src/images/qt-creator-shadow-build.png +++ /dev/null diff --git a/doc/src/images/qt-logo.png b/doc/src/images/qt-logo.png Binary files differdeleted file mode 100644 index 14ddf2a0..00000000 --- a/doc/src/images/qt-logo.png +++ /dev/null diff --git a/doc/src/images/qt3d-logo.png b/doc/src/images/qt3d-logo.png Binary files differdeleted file mode 100644 index 1196826b..00000000 --- a/doc/src/images/qt3d-logo.png +++ /dev/null diff --git a/doc/src/images/quad-extrude.png b/doc/src/images/quad-extrude.png Binary files differdeleted file mode 100644 index c4b6ee44..00000000 --- a/doc/src/images/quad-extrude.png +++ /dev/null diff --git a/doc/src/images/quad-extrude.xcf b/doc/src/images/quad-extrude.xcf Binary files differdeleted file mode 100644 index 0d1650ac..00000000 --- a/doc/src/images/quad-extrude.xcf +++ /dev/null diff --git a/doc/src/images/quads.png b/doc/src/images/quads.png Binary files differdeleted file mode 100644 index 28a03099..00000000 --- a/doc/src/images/quads.png +++ /dev/null diff --git a/doc/src/images/shapes-screenshot.png b/doc/src/images/shapes-screenshot.png Binary files differdeleted file mode 100644 index ad0a0f43..00000000 --- a/doc/src/images/shapes-screenshot.png +++ /dev/null diff --git a/doc/src/images/soup.png b/doc/src/images/soup.png Binary files differdeleted file mode 100644 index c84c0729..00000000 --- a/doc/src/images/soup.png +++ /dev/null diff --git a/doc/src/images/sphere-detail.png b/doc/src/images/sphere-detail.png Binary files differdeleted file mode 100644 index 90e40fb4..00000000 --- a/doc/src/images/sphere-detail.png +++ /dev/null diff --git a/doc/src/images/spiky-teapot.png b/doc/src/images/spiky-teapot.png Binary files differdeleted file mode 100644 index 2871d83e..00000000 --- a/doc/src/images/spiky-teapot.png +++ /dev/null diff --git a/doc/src/images/stereo-nhd-screenshot.png b/doc/src/images/stereo-nhd-screenshot.png Binary files differdeleted file mode 100644 index 74df719e..00000000 --- a/doc/src/images/stereo-nhd-screenshot.png +++ /dev/null diff --git a/doc/src/images/stereo-screenshot-qml.png b/doc/src/images/stereo-screenshot-qml.png Binary files differdeleted file mode 100644 index d7e8f7a3..00000000 --- a/doc/src/images/stereo-screenshot-qml.png +++ /dev/null diff --git a/doc/src/images/stereo-screenshot-qml2.png b/doc/src/images/stereo-screenshot-qml2.png Binary files differdeleted file mode 100644 index d91f959f..00000000 --- a/doc/src/images/stereo-screenshot-qml2.png +++ /dev/null diff --git a/doc/src/images/stereo-screenshot.png b/doc/src/images/stereo-screenshot.png Binary files differdeleted file mode 100644 index 020fcb68..00000000 --- a/doc/src/images/stereo-screenshot.png +++ /dev/null diff --git a/doc/src/images/stereo-wide-screenshot.png b/doc/src/images/stereo-wide-screenshot.png Binary files differdeleted file mode 100644 index f9e165a6..00000000 --- a/doc/src/images/stereo-wide-screenshot.png +++ /dev/null diff --git a/doc/src/images/teapot-china-screenshot.png b/doc/src/images/teapot-china-screenshot.png Binary files differdeleted file mode 100644 index d38602fc..00000000 --- a/doc/src/images/teapot-china-screenshot.png +++ /dev/null diff --git a/doc/src/images/teapot-distortion.png b/doc/src/images/teapot-distortion.png Binary files differdeleted file mode 100644 index 76b4a3db..00000000 --- a/doc/src/images/teapot-distortion.png +++ /dev/null diff --git a/doc/src/images/teapot-distortion2.png b/doc/src/images/teapot-distortion2.png Binary files differdeleted file mode 100644 index 573503bd..00000000 --- a/doc/src/images/teapot-distortion2.png +++ /dev/null diff --git a/doc/src/images/teapot-logo.png b/doc/src/images/teapot-logo.png Binary files differdeleted file mode 100644 index a82c33c1..00000000 --- a/doc/src/images/teapot-logo.png +++ /dev/null diff --git a/doc/src/images/teapot-qml-screenshot.png b/doc/src/images/teapot-qml-screenshot.png Binary files differdeleted file mode 100644 index cb9dea91..00000000 --- a/doc/src/images/teapot-qml-screenshot.png +++ /dev/null diff --git a/doc/src/images/teapot-qt-screenshot.png b/doc/src/images/teapot-qt-screenshot.png Binary files differdeleted file mode 100644 index 2a5c2ead..00000000 --- a/doc/src/images/teapot-qt-screenshot.png +++ /dev/null diff --git a/doc/src/images/teapot-rotated.png b/doc/src/images/teapot-rotated.png Binary files differdeleted file mode 100644 index f66a93ef..00000000 --- a/doc/src/images/teapot-rotated.png +++ /dev/null diff --git a/doc/src/images/teapot-screenshot.png b/doc/src/images/teapot-screenshot.png Binary files differdeleted file mode 100644 index 07922e9e..00000000 --- a/doc/src/images/teapot-screenshot.png +++ /dev/null diff --git a/doc/src/images/teaservice-qml-screenshot.png b/doc/src/images/teaservice-qml-screenshot.png Binary files differdeleted file mode 100644 index ee2b935a..00000000 --- a/doc/src/images/teaservice-qml-screenshot.png +++ /dev/null diff --git a/doc/src/images/teaservice-screenshot.png b/doc/src/images/teaservice-screenshot.png Binary files differdeleted file mode 100644 index 35e6fc8e..00000000 --- a/doc/src/images/teaservice-screenshot.png +++ /dev/null diff --git a/doc/src/images/texture-coords-gen.png b/doc/src/images/texture-coords-gen.png Binary files differdeleted file mode 100644 index 5f155b1a..00000000 --- a/doc/src/images/texture-coords-gen.png +++ /dev/null diff --git a/doc/src/images/texture-coords-gen.xcf b/doc/src/images/texture-coords-gen.xcf Binary files differdeleted file mode 100644 index b6540bb4..00000000 --- a/doc/src/images/texture-coords-gen.xcf +++ /dev/null diff --git a/doc/src/images/texture-seam.png b/doc/src/images/texture-seam.png Binary files differdeleted file mode 100644 index 2cd97233..00000000 --- a/doc/src/images/texture-seam.png +++ /dev/null diff --git a/doc/src/images/triangle3d-center.png b/doc/src/images/triangle3d-center.png Binary files differdeleted file mode 100644 index da6fabb0..00000000 --- a/doc/src/images/triangle3d-center.png +++ /dev/null diff --git a/doc/src/images/triangle3d-dimensions.png b/doc/src/images/triangle3d-dimensions.png Binary files differdeleted file mode 100644 index 5efe28ec..00000000 --- a/doc/src/images/triangle3d-dimensions.png +++ /dev/null diff --git a/doc/src/images/triangle3d.xcf b/doc/src/images/triangle3d.xcf Binary files differdeleted file mode 100644 index 798fafd2..00000000 --- a/doc/src/images/triangle3d.xcf +++ /dev/null diff --git a/doc/src/images/triangulated-face.png b/doc/src/images/triangulated-face.png Binary files differdeleted file mode 100644 index fab48126..00000000 --- a/doc/src/images/triangulated-face.png +++ /dev/null diff --git a/doc/src/images/triangulated-face.xcf b/doc/src/images/triangulated-face.xcf Binary files differdeleted file mode 100644 index 74b08edf..00000000 --- a/doc/src/images/triangulated-face.xcf +++ /dev/null diff --git a/doc/src/images/tutorials/converting-screenshot.png b/doc/src/images/tutorials/converting-screenshot.png Binary files differdeleted file mode 100644 index 9fb738ff..00000000 --- a/doc/src/images/tutorials/converting-screenshot.png +++ /dev/null diff --git a/doc/src/images/tutorials/cube1-screenshot.png b/doc/src/images/tutorials/cube1-screenshot.png Binary files differdeleted file mode 100644 index a0da12f0..00000000 --- a/doc/src/images/tutorials/cube1-screenshot.png +++ /dev/null diff --git a/doc/src/images/tutorials/cube2-screenshot.png b/doc/src/images/tutorials/cube2-screenshot.png Binary files differdeleted file mode 100644 index 20e05d1b..00000000 --- a/doc/src/images/tutorials/cube2-screenshot.png +++ /dev/null diff --git a/doc/src/images/tutorials/cube3-screenshot.png b/doc/src/images/tutorials/cube3-screenshot.png Binary files differdeleted file mode 100644 index 49cf8cbc..00000000 --- a/doc/src/images/tutorials/cube3-screenshot.png +++ /dev/null diff --git a/doc/src/images/tutorials/cube4-screenshot.png b/doc/src/images/tutorials/cube4-screenshot.png Binary files differdeleted file mode 100644 index 4f71452d..00000000 --- a/doc/src/images/tutorials/cube4-screenshot.png +++ /dev/null diff --git a/doc/src/images/tutorials/shader-tutorial-varying.png b/doc/src/images/tutorials/shader-tutorial-varying.png Binary files differdeleted file mode 100644 index 6e0c78e9..00000000 --- a/doc/src/images/tutorials/shader-tutorial-varying.png +++ /dev/null diff --git a/doc/src/images/tutorials/shader-tutorial.png b/doc/src/images/tutorials/shader-tutorial.png Binary files differdeleted file mode 100644 index 97db13d3..00000000 --- a/doc/src/images/tutorials/shader-tutorial.png +++ /dev/null diff --git a/doc/src/images/vector-mag.odf b/doc/src/images/vector-mag.odf Binary files differdeleted file mode 100644 index 96222af0..00000000 --- a/doc/src/images/vector-mag.odf +++ /dev/null diff --git a/doc/src/images/vector-mag.png b/doc/src/images/vector-mag.png Binary files differdeleted file mode 100644 index 0d913ee6..00000000 --- a/doc/src/images/vector-mag.png +++ /dev/null diff --git a/doc/src/images/vector-normalized.png b/doc/src/images/vector-normalized.png Binary files differdeleted file mode 100644 index c1c4b968..00000000 --- a/doc/src/images/vector-normalized.png +++ /dev/null diff --git a/doc/src/images/vector-point.odf b/doc/src/images/vector-point.odf Binary files differdeleted file mode 100644 index 6b73097c..00000000 --- a/doc/src/images/vector-point.odf +++ /dev/null diff --git a/doc/src/images/vector-point.png b/doc/src/images/vector-point.png Binary files differdeleted file mode 100644 index c78410fd..00000000 --- a/doc/src/images/vector-point.png +++ /dev/null diff --git a/doc/src/images/view-frustum-10-degrees-angle-shot.png b/doc/src/images/view-frustum-10-degrees-angle-shot.png Binary files differdeleted file mode 100644 index aab9764f..00000000 --- a/doc/src/images/view-frustum-10-degrees-angle-shot.png +++ /dev/null diff --git a/doc/src/images/view-frustum-10-degrees.png b/doc/src/images/view-frustum-10-degrees.png Binary files differdeleted file mode 100644 index 130a4464..00000000 --- a/doc/src/images/view-frustum-10-degrees.png +++ /dev/null diff --git a/doc/src/images/view-frustum-20-degrees.png b/doc/src/images/view-frustum-20-degrees.png Binary files differdeleted file mode 100644 index 079c2550..00000000 --- a/doc/src/images/view-frustum-20-degrees.png +++ /dev/null diff --git a/doc/src/images/view-frustum-30-degrees.png b/doc/src/images/view-frustum-30-degrees.png Binary files differdeleted file mode 100644 index 9d0a2e59..00000000 --- a/doc/src/images/view-frustum-30-degrees.png +++ /dev/null diff --git a/doc/src/images/view-frustum-angle-shot-annotated.png b/doc/src/images/view-frustum-angle-shot-annotated.png Binary files differdeleted file mode 100644 index a2949db7..00000000 --- a/doc/src/images/view-frustum-angle-shot-annotated.png +++ /dev/null diff --git a/doc/src/images/view-frustum-angle-shot.png b/doc/src/images/view-frustum-angle-shot.png Binary files differdeleted file mode 100644 index 8991a442..00000000 --- a/doc/src/images/view-frustum-angle-shot.png +++ /dev/null diff --git a/doc/src/images/view-frustum-angle-shot.xcf b/doc/src/images/view-frustum-angle-shot.xcf Binary files differdeleted file mode 100644 index 0583b0d8..00000000 --- a/doc/src/images/view-frustum-angle-shot.xcf +++ /dev/null diff --git a/doc/src/images/view-frustum-origin.png b/doc/src/images/view-frustum-origin.png Binary files differdeleted file mode 100644 index 8c008df8..00000000 --- a/doc/src/images/view-frustum-origin.png +++ /dev/null diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc deleted file mode 100644 index e70eff2b..00000000 --- a/doc/src/index.qdoc +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page index.html - \title QtQuick3D Reference Documentation - \keyword QtQuick3D Reference Documentation - - \image qt3d-logo.png - - QtQuick3D adds 3D content to \l{http://qt.nokia.com/qtquick/}{Qt Quick's} cross-platform ability and coding power. - Developers of fluid user interfaces can now enhance their applications with 3D - content in the same way icons and pixmaps would be used in a 2D application. - - QtQuick3D is a product resulting from the \l{http://doc.qt.nokia.com/qt3d-snapshot}{Qt3D project}. Qt3D is a set of powerful - cross-platform C++ API's for 3D programming using OpenGL. - - QtQuick3D is made up of the QML bindings for Qt3D (called QML3D) plus - Qt Creator integration, and other supporting tools. Qt3D may be used to - extend QtQuick3D by creating new user-defined QML3D items using C++. - - OpenGL hardware was designed for 3D acceleration and QtQuick3D allows applications - to utilise that 3D hardware fully. - - QtQuick3D is the Qt Quick product for scripting 3D applications in QML. Apps can be - 2D QML applications with a small amount of simple 3D content; through to complex - 3D scenes, containing 3D assets - such as complex 3D models, and shader effects. - - In QtQuick3D scripts are written in QML, and rendered with the power of Qt & C++. - - Qt3D research continues and if the features you're looking for are not in QtQuick3D - yet you may find them in the \l{http://doc.qt.nokia.com/qt3d-snapshot/index.html}{Qt3D research project}. - - Check the Qt3D research project for upcoming features like \bold{stereoscopic support}, - which will enable your programs to take advantage of special hardware that displays a different image to each eye. - We are readying QtQuick3D for stereo support and in some places you may see references to it, - however it is \bold{not supported yet}. - - QtQuick3D displays \bold{3D content} that is \bold{ready to be enhanced} by stereoscopic - hardware, but out-of-the-box QtQuick3D works just fine on regular non-stereo displays - and does not require special glasses or displays to use it. - - See the \l{Tutorials and Examples} for an introduction to using QtQuick3D and Qt3D. - - \table 100% - \header - \o Getting Started - \o Functionality Areas - \o API Reference - \row - \o \list - \o \l{qt3d-building.html}{Building} - \o \l{qt3d-examples.html}{Tutorials and Examples} - \o \l{Writing a scene format plug-in for Qt3D}{Scene format plug-ins} - \o \l{qt3d-contrib.html}{Contributing} - \o \l{qt3d-acceptance.html}{Acceptance tests} - \o \l{qt3d-troubleshooting.html}{Troubleshooting Quick3D} - \endlist - - \o \list - \o \l{Qt3D Arrays and Vertex Buffers}{Arrays and Vertex Buffers} - \o \l{Qt3D Geometry}{Geometry Building} - \o \l{Qt3D Graphics View Integration}{Graphics View Integration} - \o \l{Qt3D Materials}{Materials} - \o \l{Qt3D Math}{Mathematical Primitives} - \o \l{Qt3D Painting}{Painting in 3D} - \o \l{Qt3D Scene Management}{Scene Management} - \o \l{Qt3D Texture Handling}{Texture Management} - \o \l{Qt3D Viewing}{Viewing Widgets} - \endlist - - \o \list - \o \l{qt3d-all-classes.html}{All Classes} - \o \l{All Namespaces}{QGL Namespace} - \o \l{QtQuick3D for Scripting 3D Apps in QML}{QtQuick3D Elements} - \o \l{Stock Shapes for QtQuick3D}{QML/3D Stock Shapes} - \endlist - \endtable -*/ diff --git a/doc/src/qline3d-math.qdoc b/doc/src/qline3d-math.qdoc deleted file mode 100644 index beacf1b2..00000000 --- a/doc/src/qline3d-math.qdoc +++ /dev/null @@ -1,211 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \ingroup qt3d - \ingroup qt3d::math - \since 4.8 - \title 3D Math Basis - \page qt3d-math-basis.html - \keyword 3D Math Basis - \brief Math foundations for the Qt3D math classes. - - The math classes provide basic operations in 3-space useful for graphics: - \list - \o QLine3D - \o QLineSegment3D - \o QPlane3D - \o QTriangle3D - \o QBox3D - \endlist - - This is a basic discussion of the mathematics behind these classes. - - \section1 Vectors and Points - - There are two important building blocks in 3D: the \bold vector and the - \bold point in cartesian 3-space. - - Both are comprised by 3 values in \bold R, the real numbers. - - So programatically in Qt both vectors and points are stored in a QVector3D instance, - since that class can store 3 qreal values. - - But there are important differences between points and vectors: - \list - \o a point \bold P is a 3D \i location, and makes sense in terms of a 3D cartesian - coordinate system. A real-world example is a map-location given in terms - of a map cross-reference. The location has no inherent magnitude, unless you - provide another location and find the distance between the two. - \o a vector \bold v is a 3D \i direction and magnitude. It makes no sense to talk - about a vector being located somewhere. A vector can represent for example - some directions like "go 3 north-west 3 kilometers", but this can be done from - \bold {anywhere on the map} - it is not anchored like the point is. - \endlist - - In 3D math points and vectors are represented by column vectors: - - \image vector-point.png - - In normal text where the over-arrow symbol is not available the vector is just a - bolded lower-case letter. A point is a capital letter, non-bolded. - - The fourth element in the column vectors above, w = 1 for points and w = 0 for vectors - means that vectors are not altered by certain affine transformations such - as \c{translate()}. - - \image affine-transform.png - - This affine transform T comprises a rotation and a translation. Remember that applying - the transform is done by the - \l{http://www.intmath.com/Matrices-determinants/4_Multiplying-matrices.php}{matrix multiplication} - \c{P * T = P'}. - - Notice how the 1 in the column for the translation multiplies out to zero against - the vectors last 0 value, so the vector is "immune" to the translation. - - In the case of the point the w = 1 "triggers" the translation values in the matrix. - - So the take away principle is that points and vectors, while represented by the same - data structure are different and behave differently in 3D math. - - \section2 Vector Magnitude and Normal Vectors - - Another important difference between points and vectors is that a vector has a magnitude, - whereas a point does not. - - Consider the vector v = (v0, v1, v2) to be rooted at - the origin O = (0, 0, 0) and pointing to the point P = (v0, v1, v2), then - its magnitude is the length of the line O to P. Magnitude is represented by - vertical bars and is found by this formula: - - \image vector-mag.png - - Unit vectors are those with a magnitude of exactly 1. The math notation is a "hat" - (or circumflex) over the bolded vector symbol. - - A unit vector parallel to one of the axes is easy to form without any division: - \raw HTML - <center><b>î</b> = (1, 0, 0)</center> - \endraw - - More typically such a vector is found by dividing by its own length: - - \image vector-normalized.png - - Vectors used for 3D normals are usually normalized to unit length. Confusingly - enough, since that is two different uses of the word "normal". - - A \i normal is simply a vector perpendicular to something. For example a plane normal is - perpendicular to the plane. - - Typically a normal vector is unit length, for convenience in 3D applications (but - there is nothing mathematically to say a normal vector has to be unit length). - - A vertex normal is perpendicular to the surface modelled by the vertex, and is used - in lighting calculations. - - \section1 Reviewing Operations on Vectors - - The QVector3D class provides two very useful functions - the vector dot-product and the - vector cross-product. Here's a quick review of their uses: - \list - \o QVector3D::crossProduct(const QVector3D &, const QVector3D &) - \list - \o The cross-product of two vectors produces a \i vector as a result and is - written \bold w = \bold u x \bold v. The result \bold w is perpendicular to both - \bold u and \bold v. Consider a plane N containing point P, with the tails of \bold u - and \bold v at P, and both lying in N, then \bold u x \bold v is a normal to N. - \endlist - \o QVector3D::dotProduct(const QVector3D &, const QVector3D &) - \list - \o The dot-product of two vectors produces a \i scalar as a result and is written - \c{t = \bold u . \bold v}. The result t = |u| |v| cos(A), where A is the angle - between u and v. When \bold u and \bold v have magnitude 1, they are called - unit vectors, and \bold u . \bold v = cos(A). - \endlist - \endlist - - A vector has the following operations defined on it in 3-space - \list - \o multiplication by a scalar, eg v' = s * \bold v - \o addition with another vector, eg \bold u = \bold v + \bold w - \endlist - - Multiplying and dividing by vectors is not defined - these operations make no sense in - 3-D space. - - Although you cannot add a vector to a point as such, you can consider the vector from the - origin to the point, and add the vector to that. Thus rather than out-lawing adding a - vector to a point it is simply defined as such. This allows the convenient notation for - lines and planes introduced in the next section. - - \section1 Representing Lines and Planes - - The QLine3D is represented by a point and a vector: the point anchors the line in - cartesian 3-space; and the vector is the direction the line is oriented in through that - point. The line is infinite. - - The QPlane3D is represented also by a point and a vector. Again the point anchors the line - in cartesian 3-space; but the vector this time is a normal to the plane. The plane is - infinite. - - This representation turns out to make many types of calculations required for 3D graphics - very straight forward. - - For example to find if a point P lies on a plane take the vector \bold p from the point to - the planes origin, and find the dot-product with the planes normal \bold n. - - If \bold {p . n} is zero, then \bold p is perpendicular to \bold n, and P is on the plane. - - \target vector-and-point-arithmetic - \section1 Vector and Point Arithmetic - - Slightly more complex arithmetic with the components of QLine3D and QPlane3D is possible, - with some care about what operations can be performed. - - As an example look at the implementation for QLine3D::intersection(const QLine3D &) : the - two lines are defined as: - - \image line-int-1.png - - If the two lines intersect then P(t) == Q(s) and for some ordered pair \bold s, \bold t - is a solution to the equations for both lines. - - The aim is to solve for \bold s and \bold t. - - The equations can be rearranged algebraically as shown in the last line above. - - But since dividing by a vector is not defined, tempting options such as dividing by \bold v - to solve for t are not possible. In the implementation the next step is breaking the points - and vectors down into their x, y and z components giving 3 simultaneous equations: - - \image line-int-2.png - - This can be readily solved using gaussian elimination to get a solution for s, and - substituting back gives t. -*/ diff --git a/doc/src/qt3d-all-classes.qdoc b/doc/src/qt3d-all-classes.qdoc deleted file mode 100644 index 3ba8aae7..00000000 --- a/doc/src/qt3d-all-classes.qdoc +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page qt3d-all-classes.html - \title Qt3D Classes - \keyword Qt3D Classes - - \generatelist classes -*/ - -/*! - \group qt3d - \title Qt3D Classes - - \generatelist{related} -*/ - -/*! - \page qt3d-all-namespaces.html - \title All Namespaces - \keyword All Namespaces - - \l{QGL}{QGL Namespace} -*/ diff --git a/doc/src/qt3d-all-modules.qdoc b/doc/src/qt3d-all-modules.qdoc deleted file mode 100644 index bf22a1f8..00000000 --- a/doc/src/qt3d-all-modules.qdoc +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page qt3d-modules.html - \title All Modules - \keyword All Modules - - \raw HTML - <table cellpadding="2" cellspacing="1" border="0" width="100%" class="indextable"> - <tr> - <th class="titleheader" width="33%"> - Functionality Areas - </th> - </tr> - <tr> - <td valign="top"> - <ul> - <li><a href="qt3d-arrays.html">Arrays and Vertex Buffers</a></li> - <li><a href="qt3d-geometry.html">Geometry Building</a></li> - <li><a href="qt3d-graphicsview.html">Graphics View Integration</a></li> - <li><a href="qt3d-materials.html">Materials</a></li> - <li><a href="qt3d-math.html">Mathematical Primitives</a></li> - <li><a href="qt3d-painting.html">Painting in 3D</a></li> - <li><a href="qt3d-scene.html">Scene Management</a></li> - <li><a href="qt3d-textures.html">Texture Management</a></li> - <li><a href="qt3d-viewing.html">Viewing Widgets</a></li> - </ul> - </td> - </tr> - </table> - \endraw -*/ diff --git a/doc/src/qt3d-arrays.qdoc b/doc/src/qt3d-arrays.qdoc deleted file mode 100644 index 387d3d03..00000000 --- a/doc/src/qt3d-arrays.qdoc +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \group qt3d::arrays - \title Qt3D Arrays and Vertex Buffers - \keyword Vertex Buffer - - \generatelist{related} -*/ diff --git a/doc/src/qt3d-building.qdoc b/doc/src/qt3d-building.qdoc deleted file mode 100644 index 176c2d32..00000000 --- a/doc/src/qt3d-building.qdoc +++ /dev/null @@ -1,275 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page qt3d-building.html - \title Building QtQuick3D - \keyword Building QtQuick3D - - \section1 QtQuick3D Binary Packages - - Do you have to build QtQuick3D? Check if binary packages are available - for your platform on the \l{http://qt.nokia.com/downloads}{Qt downloads page}. - - This page gives guidelines on how to build Qt3D either from a source package - or from a repository snapshot. - - \section1 Obtaining QtQuick3D sources - - If you want to work with the latest bleeding edge QtQuick3D features, or if - you would like to modify or contribute to QtQuick3D you can build it from - our source repository. - - The source for QtQuick3D is hosted on Gitorious as the git repository - \l{http://qt.gitorious.org/qt-quick3d/qt-quick3d}{\c{qt-quick3d/qt-quick3d.git}}. - It can be cloned as follows: - - \code - $ mkdir -p $HOME/depot/qt - $ cd $HOME/depot/qt - $ git clone git://gitorious.org/qt-quick3d/qt-quick3d.git - \endcode - - More stable versions of the QtQuick3D source code is available as source - packages from \l{ftp://ftp.qt.nokia.com/qt3d/noarch}{Qt3D downloads page}. - Just unzip or untar it into your \c{depot} directory. - - \section1 Building QtQuick3D - - QtQuick3D requires Qt 4.7. The QtSDK currently ships with Qt 4.7 so if - you're using the SDK you should be fine. Alternatively you can build - against a Qt that you have compiled from source. Just make sure that - when you build Qt, that you use the -developer-build option, and do not - do a \c{make install} as root. The reason for this is when Qt3D builds in - it will place the libraries, headers and plugins into the correct position - in the hosted Qt library, so that will need to be writable. - - Here's an example configure line you can use: - \code - mkdir -p $HOME/build/qt/4.7 && cd $HOME/build/qt/4.7 - /path/to/qt/configure -developer-build -no-qt3support -no-webkit -no-xmlpatterns \ - -no-phonon -opengl -declarative -nomake demos -nomake examples - make - \endcode - ...this line turns off many features that aren't needed for QtQuick3D, and - it also explicitly asks for declarative and opengl (even though those are - on by default) so that an error will be generated if OpenGL is not available. - - \section1 Building QtQuick3D Using QtCreator / QtSDK - - Here is a step-by-step guide to building QtQuick3D using the - \l{http://qt.nokia.com/products/appdev/developer-tools/developer-tools}{QtCreator IDE}. - QtCreator is the development environment for the QtSDK. Here we're using - version 2.0 on Mac OSX, but other operating systems and versions should - look similar. Always use the latest release of QtCreator if possible. - - \bold{Special note: Harmattan SDK.} When using the Harmattan support in the Qt SDK: - \list - \o in Step 2 below ensure you choose the appropriate Qt Build eg \c{Meego 1.2 Harmattan API}; and - \o in Step 3 under \c{Build Steps > QMake > Additional arguments} add in \c{CONFIG+=qtc_harmattan} - \endlist - - \image build-qt3d-qtcreator-1.png - - \bold{Step 1} - Open the QtQuick3D project. - - Choose \c{Open} from the \c{File} menu and navigate to the quick3d.pro project - file \c {$HOME/depot/qt/quick3d/quick3d.pro}. Click \c{Open}. - - \image build-qt3d-qtcreator-2.png - - \bold{Step 2} - Select the Qt and load Qt3D. - - \image build-qt3d-qtcreator-4.png - - Set the Qt build to use, making sure it has OpenGL and QtDeclarative. In this - situation where I have a large number of Qt versions to choose from it is - easiest to use the "Uncheck All" button, then check the one I want - which is the - Qt that ships with the QtSDK. - - If you can't tell from the screen above which is the right Qt to use, just - choose a safe looking one, perhaps the default, as you can change it easily - below. - - \image build-qt3d-qtcreator-3.png - - After a short time QtCreator will have loaded up the Qt3D project, read all its - project files and display the source tree as shown just above. - - \bold{Step 2a} - Useful Options - - Use \c{QtCreator} -> \c{Preferences...} to bring up QtCreators options and settings. - On Windows its \c{Tools} -> \c{Options...}. - - Make sure you have QtCreator set to display the compile process, so you can check - what any errors may be. The other options are set how I like them, and may suit - your use too. Give them a try, as shown in this screenshot just below. - - \image build-qt3d-qtcreator-7.png - - \bold{Step 3} - Set up for Building. - - \image build-qt3d-qtcreator-5.png - - Click the projects tab at the left to display the QtQuick3D target's \c{Build Settings} - pane. Here you can specify a Shadow Build directory. It is always a good idea to - build in a shadow directory, instead of inside the source tree. - - In the screenshot just above I use the Finder (Mac's equivalent to the Windows File - Manager) to create the shadow build directory as a "new folder". - - \image build-qt3d-qtcreator-6.png - - In this screenshot, I have renamed the "new folder" to match the shadow build directory - name that I gave QtCreator. Now I'm ready to click the "Build" button - circled in - red in the bottom left hand corner of Qt Creators main screen. - - \image build-qt3d-qtcreator-8.png - - Before you do that here's a handy trick - set QtCreator to use multiple cores - when it builds, if its supported on your platform. On Mac and other platforms that - use GCC I can set the \c{-j 4} argument to \c{make}. For Windows check for the - \c{jom} tool which you will already be using automatically, to see how many - parallel jobs your build will use. - - \image build-qt3d-qtcreator-set-to-release.png - - \bold{Special note for Windows} - make sure that the type of build matches the - Qt that you are building against. In the case of binary packages, and the Qt - that ships with the SDK these are binary release builds - so in those cases set - your Qt3D to a release build also. One way to tell that this has gone wrong is - that your Qt3D library will be called \c{Qt3Dd.dll} (note the lower case "d" - for debug) when your QtGui library is called \c{QtGui4.dll} (no lower case "d"). - - By default the Qt build system used by QtCreator will build Qt3D in debug mode. - - Ok, \bold{now} hit the build button. - - \bold{Step 4} - Build QtQuick3D and run a test App. - - Qt3D will go ahead and compile all its libraries, plugins and QML imports. - - The build is set up so that these will be placed into the directories as specified - by the host qmake - inside the Qt build tree. To find what these directories are run - \c{qmake -query}. If you like after the build you can check those directories to be sure - that Qt3D's files got placed there correctly. - - As explained above for this reason you will need to have the privileges on your - computer to write to the directories given by \c{qmake -query}. On Windows this is - generally not a problem. On Mac and Linux it should work fine when building with the - SDK which is by default installed in your home directory. It will also be fine - with builds from a source package. - - Qt3D will also place its \c{qt3d.prf} and \c{qt3dquick.prf} files into the - host Qt's QMAKE_MKSPECS/features directory. Again see \c{qmake -query} for what - that directory is on your system. This means that you can write Qt3D applications - in C++ that use the libraries by simply adding \c{CONFIG += qt3d} to your - .pro file. - - If you get early errors about not being able to copy the .prf files then check - that you have set up QtCreator to use a Qt that you can write to. - - The build will then continue on and compile all of Qt3D's examples and demos, - using the libraries as installed. When finished a message like "The process /usr/bin/make - exited normally" should be displayed. - - There is no need to run a make install step. - - \image build-qt3d-qtcreator-9.png - - Now you can use QtCreator to run one of the examples. Click the button for the - project switcher (circled in red) and then choose one of the apps. Here we - have chosen the QML "Moon" app from the menu (indicated by the red arrow). - - Click the green arrow bottom left to actually launch the "Moon" app. - - Congratulations on building Qt3D! - - \section1 Building from the Command Line - - On Linux assuming that you have built Qt 4.7 in - \c{$HOME/build/qt/4.7}, you would configure and build QtQuick3D as follows: - - \code - $ mkdir -p $HOME/build/qt/quick3d - $ cd $HOME/build/qt/quick3d - $ $HOME/build/qt/4.7/bin/qmake $HOME/depot/qt/quick3d/quick3d.pro - $ make -j 4 - $ bin/moon - \endcode - - Note that the \c{$} above means the shell prompt (don't type the \{$}). - - The last line runs the example QML application \c{moon} to check that - the build went OK. - - On Windows (with Visual Studio) those commands look like this: - - \code - mkdir \build\qt\quick3d - cd \build\qt\quick3d - qmake \depot\qt\quick3d\quick3d.pro - nmake - bin\moon - \endcode - - These commands for Windows assume that your Qt build for Qt 4.7 is in - the current PATH - so that the qmake invoked above is actually going to - be the Qt 4.7 qmake. - - On Symbian (with RVCT) those commands look like this: - - \code - mkdir C:\depot\qt\quick3d - cd C:\depot\qt\quick3d - qmake CONFIG+=old_importer - sbs -c armv5_urel - cd devices\symbian - createpackage QtQuick3D_template.pkg release-armv5 - runonphone --sis QtQuick3D.sis - \endcode - - Once you have built QtQuick3D, you can run the "teapot" example: - - \code - $ cd $HOME/build/qt/quick3d - $ bin/teapot - \endcode - - If all goes well, you should see something like the following - on the screen: - - \image teapot-screenshot.png - - QtQuick3D has been tested with Qt/X11 and Qt/Embedded under Linux, on MacOSX - and Windows XP. It also runs on Symbian^3 and MeeGo/Maemo. - - Patches for other platforms are welcome. - - \l{index.html}{Return to the main QtQuick3D page} or - \l{qt3d-examples.html}{Continue to the Tutorials and Examples}. -*/ diff --git a/doc/src/qt3d-contrib.qdoc b/doc/src/qt3d-contrib.qdoc deleted file mode 100644 index 53e44f8b..00000000 --- a/doc/src/qt3d-contrib.qdoc +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page qt3d-contrib.html - \title Contributing to QtQuick3D and Qt3D - \keyword Contributing to Qt3D - - QtQuick3D and Qt3D are developed primarily in the Brisbane office of Qt - Development Frameworks, but anyone is welcome to join the effort with - patches, new examples, and major feature development. - - Qt3D research may be a better place to contribute as the QtQuick3D has a strong - product focus. Check the Qt3D \l{http://doc.qt.nokia.com/qt3d-snapshot/qt3d-contrib.html}{contributions page}. - - Jump on the IRC channel at #qt-3d on irc.freenode.net, or join our qt3d - mailing list at \l{http://lists.trolltech.com/mailman/listinfo/qt-3d}. - - All contributions need to conform with the - \l{http://qt.gitorious.org/qt/pages/QtContributionGuidelines}{Qt Contribution Model Guidelines}. - - The source for QtQuick3D is hosted on Gitorious at - \l{http://qt.gitorious.org/qt-labs/quick3d}. - - Bugs can be reported against the "Qt3D" component of the "Qt" project - at \l{http://bugreports.qt.nokia.com/}. - - - \l{index.html}{Return to the main QtQuick3D page}. -*/ diff --git a/doc/src/qt3d-examples.qdoc b/doc/src/qt3d-examples.qdoc deleted file mode 100644 index 01c8c758..00000000 --- a/doc/src/qt3d-examples.qdoc +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page qt3d-examples.html - \title Tutorials and Examples - \keyword Tutorials and Examples - - Building 3D applications in QML with QtQuick3D: - - \list - \o \l{Teapot Example in QtQuick3D}{Hello Teapot} in QtQuick3D - \o \l{quick3d/basket#Basket in QtQuick3D}{Basket} in QtQuick3D - \o \l{Object Effects}{Cube} in QtQuick3D - \o \l{Monkey God in QML}{Monkey God} in QtQuick3D - \o \l{Tea Service Demo in QML}{Tea Service} in QtQuick3D - \o \l{Using GLSL shaders in QtQuick3D} - \endlist - - Using C++ to extend QtQuick3D and to build applications with Qt3D: - - \list - \o \l{Teapot Example}{Hello Teapot} - drawing a basic object in 3D. - \o \l{Object Effects#Cube in Qt3D}{Cube in C++} - applying transformations and materials to objects. - \o \l{qt3d/nesting}{Nesting} - drawing into framebuffer objects. - \o \l{Loading a 3DS model with Qt3D}{Penguin} - loading a 3DS model with Qt3D. - \o \l{qt3d/pageflip}{Page Flip} - using shaders to combine textures. - \o \l{qt3d/shapes}{Shapes} - paints all of the basic OpenGL shapes. - \endlist - - Other topics: - - \list - \o \l{Scene Format Plugin}{Writing a scene format plug-in for Qt3D} - \endlist - - \l{index.html}{Return to the main Qt3D page}. -*/ - -/*! - \page qt-examples-placeholder.html - \title Qt Examples - \keyword Qt Examples - - Check the \l{http://doc.qt.nokia.com/4.7/all-examples.html}{Qt Examples for sample code specific to Qt itself.} - - For examples specific to Qt3D check our \l{qt3d-examples.html}{examples page}. -*/ diff --git a/doc/src/qt3d-geometry.qdoc b/doc/src/qt3d-geometry.qdoc deleted file mode 100644 index 9ab6e7c4..00000000 --- a/doc/src/qt3d-geometry.qdoc +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\group qt3d::geometry -\title Qt3D Geometry -\keyword Qt3D Geometry - -\generatelist{related} -*/ diff --git a/doc/src/qt3d-graphicsview.qdoc b/doc/src/qt3d-graphicsview.qdoc deleted file mode 100644 index 3391ace5..00000000 --- a/doc/src/qt3d-graphicsview.qdoc +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \group qt3d::graphicsview - \title Qt3D Graphics View Integration - \keyword Qt3D Graphics View Integration - - \generatelist{related} -*/ diff --git a/doc/src/qt3d-materials.qdoc b/doc/src/qt3d-materials.qdoc deleted file mode 100644 index 38909cfc..00000000 --- a/doc/src/qt3d-materials.qdoc +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\group qt3d::materials -\title Qt3D Materials -\keyword Qt3D Materials - -\generatelist{related} -*/ diff --git a/doc/src/qt3d-math.qdoc b/doc/src/qt3d-math.qdoc deleted file mode 100644 index 5b663405..00000000 --- a/doc/src/qt3d-math.qdoc +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\group qt3d::math -\title Qt3D Math -\keyword Qt3D Math - -\generatelist{related} -*/ diff --git a/doc/src/qt3d-painting.qdoc b/doc/src/qt3d-painting.qdoc deleted file mode 100644 index b94e03d5..00000000 --- a/doc/src/qt3d-painting.qdoc +++ /dev/null @@ -1,60 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\group qt3d::painting -\title Qt3D Painting -\keyword Qt3D Painting - -Porting between desktop OpenGL and embedded OpenGL/ES has traditionally -been difficult. The usual sequence of operations for a drawing request -in OpenGL consists of: - -\list - \o Select an appropriate shader program, or fixed-function pipeline - rendering options. - \o Set or adjust the current projection and modelview matrices. - \o Specify vertex, normal, texture co-ordinate, and other attribute arrays. - \o Specify textures, variables, and other rendering objects needed - by the shader program. - \o Draw fragments: triangles, triangle fans, quads, etc. - \o Disable the arrays, textures, and modes that were selected. -\endlist - -Desktop OpenGL, OpenGL/ES 1.1, and OpenGL/ES 2.0 all posses functionality -for the above, but they are all different. OpenGL/ES 2.0 in particular -presents unique problems because it lacks a fixed-function pipeline mode -to perform common painting operations. - -In Qt3D the QGLPainter class wraps OpenGL to present a consistent -OpenGL painting API across all platforms. Shaders and fixed-function -options are supplied as an instance of QGLAbstractEffect. Several -built-in standard effects are provided for drawing with flat colors, -material-based lighting, and simple texturing. - -\generatelist{related} -*/ diff --git a/doc/src/qt3d-qml3d.qdoc b/doc/src/qt3d-qml3d.qdoc deleted file mode 100644 index e6a7c812..00000000 --- a/doc/src/qt3d-qml3d.qdoc +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\group qt3d::qml3d -\title QtQuick3D for Scripting 3D Apps in QML -\keyword QtQuick3D QML - -The following QML elements are provided by the \c{Qt3D} namespace -for importing 3D elements into QML applications: - -\generatelist{related} - -See the \l{Teapot Example in QtQuick3D}{Teapot} example for an introduction -to using these elements. - -QtQuick3D also provides some \l{Stock Shapes for QtQuick3D}{stock shapes} -in the \c{Qt3D.Shapes} namespace as convenience elements. -*/ - -/*! -\group qt3d::qml3d::shapes -\title Stock Shapes for QtQuick3D - -The following QML elements are provided by the \c{Qt3D.Shapes} namespace -as convenience elements: - -\generatelist{related} - -See the \l{Object Effects}{Cube} example for an introduction to using these convenience shapes in QML. -*/ diff --git a/doc/src/qt3d-scene.qdoc b/doc/src/qt3d-scene.qdoc deleted file mode 100644 index c7b137b3..00000000 --- a/doc/src/qt3d-scene.qdoc +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\group qt3d::scene -\title Qt3D Scene Management -\keyword Qt3D Scene Management - -\generatelist{related} -*/ diff --git a/doc/src/qt3d-textures.qdoc b/doc/src/qt3d-textures.qdoc deleted file mode 100644 index fefa5946..00000000 --- a/doc/src/qt3d-textures.qdoc +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \group qt3d::textures - \title Qt3D Texture Handling - \keyword Qt3D Texture Handling - - \generatelist{related} -*/ diff --git a/doc/src/qt3d-troubleshooting.qdoc b/doc/src/qt3d-troubleshooting.qdoc deleted file mode 100644 index 9fc2cb22..00000000 --- a/doc/src/qt3d-troubleshooting.qdoc +++ /dev/null @@ -1,295 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page qt3d-troubleshooting.html - \title QtQuick3D Troubleshooting Guide - \keyword Building QML QtQuick3D - - Quick3D has been developed with the intention of supporting a variety - of platforms and systems, and in doing so leverages the plugin and - import architecture used by Qt. - - This architecture occasionally causes confusion for newcomers to - the Qt plugin architecture, however, which can cause runtime problems to - occasionally arise. - - \section1 Common Quick3D Problems - - \section2 PROBLEM 1: I Can't See Warnings from my QML/3D Application - - Many problems with QML (both 2D and 3D) can only be diagnosed through - warning and status messages. - - In the QMLViewer application these can be viewed by selecting the "Show - Warnings" item in the "Debugging" menu. - - For QML applications which do not use the QMLViewer, however, no such - option exists. - - For Linux & Mac: - \list - \o Run the application within QtCreator - the warning messages will be - visible in the Application Output pane. - \o Run the application from the command line - the warning messages - will now be displayed directly in the terminal window. - \endlist - - For Windows - \list - \o Run the application within QtCreator - the warning messages will be - visible in the Application Output pane. - \o Run the application from within Visual Studio - the warning messages - will be visible in the Output window. - \o Use an application such as Windows Sysinternals' "DebugView.exe" to - capture warning and error messages from your QML application. - \endlist - - \section2 PROBLEM 2: Qt3D Plugin File Not Found - - By far the most prevalant problems encountered by Quick3D newcomers are - those relating to inability for an application to find the correct plugins - at runtime. - - This problem is characterised by a blank screen being displayed, and the - following warning message: - - \code - file:///C:/path/to/qml/app/my_app.qml:42:1: module "Qt3D" plugin "qthreedqmlplugin" not found - import Qt3D 1.0 - - ^ - \endcode - - To resolve this problem try each of the Resolution Actions listed, one at - a time, retrying your application after each step. - - \section2 PROBLEM 3: Qt3D Not Installed - - This is related to the Problem 2, though is characterised by error messages - containing the following: - - \code - module "Qt3D" is not installed - \endcode - - To resolve this problem try each of the Resolution Actions listed, one at - a time, retrying your application after each step. - - \section2 PROBLEM 4: The Specified Module Could Not Be Found - - This is related to Problem 2, though in this case it is characterised by error - messages similar to the following: - - \code - file:///path/to/quick3d/app.qml:10:1: plugin cannot be loaded for module "Qt3D": Cannot load library C:/path/to/Qt/imports/qthreedqmlplugin.dll: The specified module could not be found. - \endcode - - To resolve this problem try each of the Resolution Actions listed, one at - a time, retrying your application after each step. - - \section2 PROBLEM 5: 3D Models Fail to Load - - Usually this problem will be accompanied by a message similar to this one: - - \code - Could not create handler for format - check plugins are installed correctly in /path/to/Qt/plugins - Could not load file:///path/to/model/my_model.obj (possibly plugin could not be found) - \endcode - - In this case the problem is that the plugins for various scene formats are - missing. - - Follow the instructions in Resolution Action 4 onward. - - \section2 PROBLEM 6: Build Keys Do Not Match - - Sometimes users may encounter an error similar to the one shown below: - - \code - plugin: my_plugin.dll: failed to load: The plugin 'C:/path/to/qt/plugins/my_plugin.dll' uses incompatible Qt library. Expected build key "Windows mingw debug full-config", got "Windows mingw release full-config" - \endcode - - This error is caused by a mismatch between the Qt library against which the plugin - was compiled, and the Qt library being used at runtime. - - To resolve this problem follow Resolution Action 5 onward, below. - - \section2 PROBLEM 7: Case mis-match on loading QML plugins - - You get a blank screen when the Qt Quick 3D application runs. The debug output - (see Problem 1 above) reveals a message similar to - \code - Starting C:\Qt\4.7.3\bin\qmlviewer.exe -I C:/Qt/4.7.3/imports C:/Qt/4.7.3/quick3d/bin/resources/examples/basket_qml/qml/basket.qml - C:/Qt/4.7.3/quick3d/bin/resources/examples/basket_qml/qml/basket.qml: File name case mismatch - \endcode - - This issue can occur when a custom install directory for Qt is used, which does not - match the expected directory used by the Qt3D binary installer, but still installs - without apparent error due to Windows tolerance for case error. - - For example you install Qt applications into \bold{C:\\qt} such as Qt Creator - but then when you install Qt 4.7.3 you accept the default install location - of "C:\\Qt" - this succeeds, even though the case preserved name of the - directory is "C:\\qt". When Qt Declarative's case checking code parses the - import statement it refuses to load the qml file. - - This error is very difficult to diagnose and the best way to fix it is to - uninstall everything from the directory in question, using the package uninstallers - in the start menu, then remove the directory itself, the finally reinstall everything. - - \section1 Resolution Actions - - \section2 ACTION 1: Ensure that Quick3D is Building Correctly - - As obvious as this sounds, it is sometimes the case that a problem is - caused simply by one of the runtime libraries or plugins for Quick3D - failing to build, even while the user's application itself builds without - error. - - Ensure that all of the components of Quick3D have built without error - before attempting further resolution actions. - - \section2 ACTION 2: Ensure Import Files Are Correctly Located - - Ensure that the Quick3D import libraries are in the directory specified by - the QtQuick import path. - - The core Quick3D import directory is: \c{imports\Qt3D} in the directory - where Qt is installed. - - This directory should contain the files as shown in the following diagram: - - \image imports-dir.png - - Here for the sake of illustration it is assumed Qt 4.7.3 is intalled under - \c{C:\Qt\4.7.3}. - - If these files are not in the correct locations copy them manually into the - specified locations and retry your Quick3D application before moving on to - other fixes. The dll's should have been built as part of your build process - and the other files are shipped in the source tree, and can be simply copied - over if somehow the build process has failed to do this. - - \section2 ACTION 3: Ensure Qt3D Libraries Are Correctly Located - - Ensure that the Quick3D libraries can be found by the application. The - files that should be found are: - - \list - \o Qt3D.dll - \o Qt3DQuick.dll - \endlist - - There are three ways to make these files available to your application: - - \list - \o 1. Copy these files into the same directory as your application executable. - \o 2. Add the current location of these files to your PATH environment variable. - \o 3. Copy these files into the Qt binaries directory. - \endlist - - The Qt binaries directory is: - \code - \path\to\qt\bin - \endcode - - Having executed one of these fixes, retry your application before trying any - other troubleshooting tips. - - \section2 ACTION 4: Ensure Additional Plugin Libraries Are Correctly Located - - Ensure that the Quick3D plugin libraries are in the directory specified by - the QtQuick plugins path. - - The Quick3D scene format plugins (which are responsible for loading model files) - should be found in: - - \code - \path\to\qt\plugins\sceneformats - \endcode - - This should contain the following files: - - \list - \o qsceneai4.dll - \o qscenebezier4.dll - \endlist - - Additional Quick3D image format plugins (which are responsible for loading some - image files) should be found in: - - \code - \path\to\qt\plugins\imageformats - \endcode - - This should contain the following files: - - \list - \o qtga4.dll - \endlist - - If these files are not in the correct locations copy them manually into the - specified locations and retry your Quick3D application before moving on to - other fixes. - - \section2 ACTION 5: Check Your Build Configuration - - It is possible that Quick3D libraries which have been built against a given - set of Qt libraries have problems when used with another build of Qt. - - This may be resolved by trying each of the following: - - \list - \o Ensure that the Qt and Quick3D libraries use the same toolchain/compiler. - \o Ensure that the Qt Configuration used to build Quick3D matches that used in - your runtime Qt libraries. - \o Ensure that the Qt used to build Quick3D and the Qt runtimes are both either - Debug or Release, not a mixture of both. - \endlist - - After making this change, retry your Quick3D application before implementing - other troubleshooting tips. - - \section2 ACTION 6: Clear the Plugin Cache - - Qt stores certain information about plugins in the plugin cache. The plugin - cache is stored through QSettings, and so is platform independent. - - It is possible that obselete plugin data for an older version of your Qt3D - plugins could be causing your Quick3D applications to fail. - - On Windows the entries in the plugin cache are stored in the registry, and - typically begin with one of the following strings: - - \code - HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.2.debug - HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.2.false - \endcode - - Delete these entries and retry your Quick3D application. -*/ diff --git a/doc/src/qt3d-viewing.qdoc b/doc/src/qt3d-viewing.qdoc deleted file mode 100644 index c682c363..00000000 --- a/doc/src/qt3d-viewing.qdoc +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\group qt3d::viewing -\title Qt3D Viewing -\keyword Qt3D Viewing - -\generatelist{related} -*/ diff --git a/doc/src/style/OfflineStyle.css b/doc/src/style/OfflineStyle.css deleted file mode 100644 index 2fb357ce..00000000 --- a/doc/src/style/OfflineStyle.css +++ /dev/null @@ -1,251 +0,0 @@ -@media screen -{ - - .wrapper - { - top:50px; - background: none; - - } - .wrapper .bd - { - background: none; - position: relative; - } - - - - - body.offline - { - background-image: none; - background-color: #FFFFFF; - - } - - .offline .footer { - margin: 0; - } - .offline .header - { - width: 100%; - margin: 0; - height: auto; - background-color: #ffffff; - padding: 10px 0 5px 0; - overflow: visible; - border-bottom: solid #E5E5E5 1px; - z-index:1; - position:fixed; - } - - .offline .header .content - { - } - .offline .header .qtref - { - color: #00732F; - position: static; - float: left; - margin-left: 5px; - font: bold 18px/1 Arial; - } - - .offline .header .qtref:visited - { - color: #00732F; - } - .offline .header .qtref:hover - { - color: #00732F; - text-decoration:none; - } - .offline .header .qtref span - { - background-image: none; - text-indent: 0; - text-decoration:none; - } - - .offline .wrap - { - margin: 0 5px 0 5px; - } - - .offline .wrap .toolbar - { - display:block; - padding-top:5px; - } - - .offline .wrap .breadcrumb ul li { - font-weight: normal; - } - - .offline .wrap .breadcrumb ul li a { - /*color: #44a51c;*/ - } - - .offline .wrap .breadcrumb ul li.last a { - /*color: #363534;*/ - } - - - - .narrow .indexboxcont .section { - width: 64%; - padding-left: 0; - } - - .narrow .indexboxcont .sectionlist { - width: 32.5%; - } - - .header .icon, - .sidebar, - .feedback, - .t_button, - .feedback, - #feedbackBox, - #feedback, - #blurpage, - .indexbox .indexIcon span, - .wrapper .hd, - .offline .indexbox .indexIcon, - .offline .header #nav-logo, - #offlinemenu, - #offlinesearch, - .offline .header #nav-topright, - .offline .header #shortCut , - .offline .wrapper .hd, - .offline .wrapper .ft, - .offline .sidebar, - .offline .wrap .feedback - { - display:none; - } - - /* end offline mode */ -#narrowmenu { - display: none; - float: right; - margin: 15px 40px 0 0; - font-size: 11px; - } - - .narrow #narrowmenu { - display: block; - } - - #narrowsearch{ - display:none; - } - - #narrowmenu ul - { - border-bottom:solid 1px #E5E5E5; - border-left:solid 1px #E5E5E5; - border-right:solid 1px #E5E5E5; - } - - #narrowmenu a { - line-height: 1.1; - background: url(../images/arrow_down.png) no-repeat 100% 50%; - white-space: nowrap; - padding: 0 16px 0 5px; - } - - #narrowmenu li { - margin-left: 20px; - } - - #narrowmenu li li { - margin: 0 0 5px 0; - } - - #narrowmenu li li a { - padding: 0; - background-image: none; - } - - #narrowmenu li, - #narrowmenu li ul { - background-color: #fff; - } - - #narrowmenu li ul { - width: auto; - padding: 5px; - margin-top:-15px; - } - - .sf-menu li:hover ul, .sf-menu li.sfHover ul { - top: 1.2em; - } -.sf-menu, .sf-menu * { - margin: 0; - padding: 0; - list-style: none; -} -.sf-menu { - line-height: 1.0; -} -.sf-menu ul { - position: absolute; - top: -999em; - width: 10em; /* left offset of submenus need to match (see below) */ -} -.sf-menu ul li { - width: 100%; -} -.sf-menu li:hover { - visibility: inherit; /* fixes IE7 'sticky bug' */ -} -.sf-menu li { - float: left; - position: relative; -} -.sf-menu a { - display: block; - position: relative; -} -.sf-menu li:hover ul, -.sf-menu li.sfHover ul { - left: 0; - top: 2.5em; /* match top ul list item height */ - z-index: 99; -} -ul.sf-menu li:hover li ul, -ul.sf-menu li.sfHover li ul { - top: -999em; -} -ul.sf-menu li li:hover ul, -ul.sf-menu li li.sfHover ul { - left: 10em; /* match ul width */ - top: 0; -} -ul.sf-menu li li:hover li ul, -ul.sf-menu li li.sfHover li ul { - top: -999em; -} -ul.sf-menu li li li:hover ul, -ul.sf-menu li li li.sfHover ul { - left: 10em; /* match ul width */ - top: 0; -} - .wrap .content ol li { - background:none; - font:400 10pt/1 Verdana; - margin-bottom:10px; - margin-left:12px; - } - .wrap .content ol li { - list-style-type:decimal; - - } - - - -} -/* end of screen media */ - diff --git a/doc/src/style/narrow.css b/doc/src/style/narrow.css deleted file mode 100644 index 7544c4ae..00000000 --- a/doc/src/style/narrow.css +++ /dev/null @@ -1,250 +0,0 @@ - /* start narrow mode */ - - body.narrow - { - background-image: none; - } - - .narrow a { - color: #44a51c; - } - - .narrow .header, .narrow .header .content, .narrow .footer, .narrow .wrapper { - margin: 0 7px; - min-width: 300px; - } - - .narrow .footer { - margin: 0; - } - .narrow .header - { - width: 100%; - margin: 0; - height: auto; - background: #fff url(../images/header_bg.png) repeat-x 0 100%; - padding: 10px 0 5px 0; - overflow: visible; - } - - .narrow .header .content - { - } - - .narrow .header #nav-logo - { - display: none; - } - - .narrow .header .qtref - { - width: auto; - height: auto; - color: #363534; - position: static; - float: left; - margin-left: 25px; - font: bold 18px/1 Arial; - } - - .narrow .header .qtref a - { - color: #363534; - } - - .narrow .header .qtref span - { - background-image: none; - text-indent: 0; - } - - .narrow .header #nav-topright - { - display: none; - } - - .narrow .header #shortCut - { - clear: both; - font-weight: normal; - position: static; - float: left; - margin: 15px 0 0 25px; - overflow: hidden; - padding: 0; - height: auto; - } - - .narrow .header #shortCut ul - { - float: none; - margin: 0; - width: auto; - font-size: 11px; - } - - .narrow .header #shortCut ul li - { - background-image: none; - } - - .narrow .header #shortCut ul .shortCut-topleft-active, - .narrow .header #shortCut ul .shortCut-topleft-inactive - { - background-image: none; - height: auto; - padding: 0; - width: auto; - } - .narrow .header #shortCut ul li a - { - color: #44a51c; - } - - .narrow .wrapper .hd - { - background: url(../images/bg_ul_blank.png) no-repeat 0 0; - } - - .narrow .wrapper .bd - { - background: url(../images/bg_l_blank.png) repeat-y 0 0; - } - - .narrow .wrapper .ft - { - background: url(../images/bg_ll_blank.png) no-repeat 0 0; - } - - .narrow .sidebar - { - display: none; - } - - .narrow .wrap - { - margin: 0 5px 0 5px; - } - - .narrow .wrap .toolbar - { - border-bottom: none; - } - - .narrow .wrap .content - { - padding-top: 15px; - } - - .narrow .wrap .feedback - { - display: none; - } - - .narrow .wrap .breadcrumb ul li { - font-weight: normal; - } - - .narrow .wrap .breadcrumb ul li a { - color: #44a51c; - } - - .narrow .wrap .breadcrumb ul li.last a { - color: #363534; - } - - #narrowsearch { - display: none; - } - - .narrow #narrowsearch { - display: block; - float: right; - margin-right: 25px; - _position: relative; - } - - .narrow #narrowsearch fieldset { - _position: absolute; - _margin-top: -1px; - } - - .narrow #narrowsearch { - background: url("http://doc.qt.nokia.com/prototype/html/images/sprites-combined.png") no-repeat scroll -6px -348px transparent; - height: 21px; - padding: 2px 0 0 5px; - width: 167px; - } - - .narrow #narrowsearch input { - border: none; - font: 13px/1.2 Verdana; - height: 19px; - outline: none; - padding: 0; - width: 158px; - *border: 1px solid #fff; - *height: 17px; - _height: 18px; - } - - .narrow .indexbox .indexIcon { - display: none; - } - - .narrow .indexboxcont .section { - width: 64%; - padding-left: 0; - } - - .narrow .indexboxcont .sectionlist { - width: 32.5%; - } - - #narrowmenu { - display: none; - float: right; - margin: 15px 40px 0 0; - font-size: 11px; - } - - .narrow #narrowmenu { - display: block; - } - - #narrowmenu a { - line-height: 1.1; - background: url(../images/arrow_down.png) no-repeat 100% 50%; - white-space: nowrap; - padding: 0 16px 0 5px; - } - - #narrowmenu li { - margin-left: 20px; - } - - #narrowmenu li li { - margin: 0 0 5px 0; - } - - #narrowmenu li li a { - padding: 0; - background-image: none; - } - - #narrowmenu li, - #narrowmenu li ul { - background-color: #fff; - margin-top:-1px; - } - - #narrowmenu li ul { - width: auto; - padding: 5px; - } - - .sf-menu li:hover ul, .sf-menu li.sfHover ul { - top: 1.2em; - } - - /* end narrow mode */ diff --git a/doc/src/style/style.css b/doc/src/style/style.css deleted file mode 100644 index f520e6ad..00000000 --- a/doc/src/style/style.css +++ /dev/null @@ -1,1567 +0,0 @@ -@media screen -{ - -/* basic elements */ - html - { - color: #000000; - background: #FFFFFF; - } - body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td - { - margin: 0; - padding: 0; - } - table - { - border-collapse: collapse; - border-spacing: 0; - } - fieldset, img - { - border: 0; - max-width:100%; - } - address, caption, cite, code, dfn, em, strong, th, var, optgroup - { - font-style: inherit; - font-weight: inherit; - } - del, ins - { - text-decoration: none; - } - li - { - list-style: none; - } - caption, th - { - text-align: left; - } - h1, h2, h3, h4, h5, h6 - { - font-size: 100%; - } - q:before, q:after - { - content: ''; - } - abbr, acronym - { - border: 0; - font-variant: normal; - } - sup, sub - { - vertical-align: baseline; - } - tt, .qmlreadonly span, .qmldefault span - { - word-spacing:5px; - } - legend - { - color: #000000; - } - input, button, textarea, select, optgroup, option - { - font-family: inherit; - font-size: inherit; - font-style: inherit; - font-weight: inherit; - } - input, button, textarea, select - { - font-size: 100%; - } - strong - { - font-weight: bold; - } - em - { - font-style: italic; - } - - /* adding Qt theme */ - html - { - /* background-color: #e5e5e5;*/ - } - body - { - background: #e6e7e8 url(../images/page_bg.png) repeat-x 0 0; - font: normal 13px/1.2 Verdana; - color: #363534; - } - a - { - color: #00732f; - text-decoration: none; - } - hr - { - background-color: #E6E6E6; - border: 1px solid #E6E6E6; - height: 1px; - width: 100%; - text-align: left; - margin: 15px 0px 15px 0px; - } - - pre - { - border: 1px solid #DDDDDD; - -moz-border-radius: 7px 7px 7px 7px; - margin: 0 20px 10px 10px; - padding: 20px 15px 20px 20px; - overflow-x: auto; - } - table, pre - { - -moz-border-radius: 7px 7px 7px 7px; - background-color: #F6F6F6; - border: 1px solid #E6E6E6; - border-collapse: separate; - font-size: 11px; - margin-bottom: 25px; - } - pre.highlightedCode { - display: block; - overflow:hidden; - } - thead - { - margin-top: 5px; - font:600 12px/1.2 Arial; - } - th - { - padding: 5px 15px 5px 15px; - background-color: #E1E1E1; - border-left: 1px solid #E6E6E6; - } - td - { - padding: 3px 15px 3px 20px; - } - tr.odd td:hover, tr.even td:hover {} - - td.rightAlign - { - padding: 3px 5px 3px 10px; - } - table tr.odd - { - border-left: 1px solid #E6E6E6; - background-color: #F6F6F6; - color: #66666E; - } - table tr.even - { - border-left: 1px solid #E6E6E6; - background-color: #ffffff; - color: #66666E; - } - table tr.odd td:hover, table tr.even td:hover - { - /* background-color: #E6E6E6;*/ /* disabled until further notice */ - } - - span.comment - { - color: #8B0000; - font-style: italic; - } - span.string, span.char - { - color: #254117; - } - - -/* end basic elements */ - -/* font style elements */ - .heading - { - font: normal bold 16px/1.0 Arial; - padding-bottom: 15px; - } - .subtitle - { - font-size: 13px; - } - .small-subtitle - { - font-size: 13px; - } -/* end font style elements */ - -/* global settings*/ - .header, .footer, .wrapper - { - min-width: 600px; - max-width: 1500px; - margin: 0 30px; - } - .header, .footer - { - display: block; - clear: both; - overflow: hidden; - } - .header:after, .footer:after, .breadcrumb:after, .wrap .content:after, .group:after - { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; - } - -/* end global settings*/ -/* header elements */ - .header - { - height: 115px; - position: relative; - } - .header .icon - { - position: absolute; - top: 13px; - left: 0; - } - .header .qtref - { - position: absolute; - top: 28px; - left: 88px; - width: 302px; - height: 22px; - } - .header .qtref span - { - display: block; - width: 302px; - height: 22px; - text-indent: -999em; - background: url(../images/sprites-combined.png) no-repeat -78px -235px; - } - .content a:visited - { - color: #4c0033; - text-decoration: none; - } - .content a:visited:hover - { - color: #4c0033; - text-decoration: underline; - } - - #nav-topright - { - height: 70px; - } - - #nav-topright ul - { - list-style-type: none; - float: right; - width: 370px; - margin-top: 11px; - } - - #nav-topright li - { - display: inline-block; - margin-right: 20px; - float: left; - } - - #nav-topright li.nav-topright-last - { - margin-right: 0; - } - - #nav-topright li a - { - background: transparent url(../images/sprites-combined.png) no-repeat; - height: 18px; - display: block; - overflow: hidden; - text-indent: -9999px; - } - - #nav-topright li.nav-topright-home a - { - width: 65px; - background-position: -2px -91px; - } - - #nav-topright li.nav-topright-home a:hover - { - background-position: -2px -117px; - } - - - #nav-topright li.nav-topright-dev a - { - width: 30px; - background-position: -76px -91px; - } - - #nav-topright li.nav-topright-dev a:hover - { - background-position: -76px -117px; - } - - - #nav-topright li.nav-topright-labs a - { - width: 40px; - background-position: -114px -91px; - } - - #nav-topright li.nav-topright-labs a:hover - { - background-position: -114px -117px; - } - - #nav-topright li.nav-topright-doc a - { - width: 32px; - background-position: -162px -91px; - } - - #nav-topright li.nav-topright-doc a:hover, #nav-topright li.nav-topright-doc-active a - { - background-position: -162px -117px; - } - - #nav-topright li.nav-topright-blog a - { - width: 40px; - background-position: -203px -91px; - } - - #nav-topright li.nav-topright-blog a:hover, #nav-topright li.nav-topright-blog-active a - { - background-position: -203px -117px; - } - - #nav-topright li.nav-topright-shop a - { - width: 40px; - background-position: -252px -91px; - } - - #nav-topright li.nav-topright-shop a:hover, #nav-topright li.nav-topright-shop-active a - { - background-position: -252px -117px; - } - - #nav-logo - { - background: transparent url(../images/sprites-combined.png ) no-repeat 0 -225px; - left: -3px; - position: absolute; - width: 75px; - height: 75px; - top: 13px; - } - #nav-logo a - { - width: 75px; - height: 75px; - display: block; - text-indent: -9999px; - overflow: hidden; - } - - - .shortCut-topleft-inactive - { - padding-left: 3px; - background: transparent url( ../images/sprites-combined.png) no-repeat 0px -58px; - height: 20px; - width: 47px; - } - .shortCut-topleft-inactive span - { - font-variant: normal; - } - .shortCut-topleft-inactive span a:hover, .shortCut-topleft-active a:hover - { - text-decoration:none; - } - #shortCut - { - padding-top: 10px; - font-weight: bolder; - color: #b0adab; - } - #shortCut ul - { - list-style-type: none; - float: left; - width: 347px; - margin-left: 100px; - } - #shortCut li - { - display: inline-block; - margin-right: 25px; - float: left; - white-space: nowrap; - } - #shortCut li a - { - color: #b0adab; - } - #shortCut li a:hover - { - color: #44a51c; - } - - - -/* end header elements */ -/* content and sidebar elements */ - .wrapper - { - background: url(../images/bg_r.png) repeat-y 100% 0; - } - .wrapper .hd - { - padding-left: 216px; - height: 15px; - background: url(../images/page.png) no-repeat 0 0; - overflow: hidden; - } - - - - - .wrapper .hd span - { - height: 15px; - display: block; - overflow: hidden; - background: url(../images/page.png) no-repeat 100% -30px; - } - .wrapper .bd - { - background: url(../images/bg_l.png) repeat-y 0 0; - position: relative; - } - - - - - .wrapper .ft - { - padding-left: 216px; - height: 15px; - background: url(../images/page.png) no-repeat 0 -75px; - overflow: hidden; - } - - - - - .wrapper .ft span - { - height: 15px; - display: block; - background: url(../images/page.png) no-repeat 100% -60px; - overflow: hidden; - } - .navTop{ - float:right; - display:block; - padding-right:15px; - - - } - - - -/* end content and sidebar elements */ -/* sidebar elements */ - .sidebar - { - float: left; - margin-left: 5px; - width: 200px; - font-size: 11px; - } - - - - - - - .sidebar .searchlabel - { - padding: 0 0 2px 17px; - font: normal bold 11px/1.2 Verdana; - } - - .sidebar .search - { - padding: 0 15px 0 16px; - } - - .sidebar .search form - { - background: url(../images/sprites-combined.png) no-repeat -6px -348px; - height:21px; - padding:2px 0 0 5px; - width:167px; - } - - .sidebar .search form input#pageType - { - width: 158px; - height: 19px; - padding: 0; - border: 0px; - outline: none; - font: 13px/1.2 Verdana; - } - - .sidebar .box - { - padding: 17px 15px 5px 16px; - } - - .sidebar .box .first - { - background-image: none; - } - - .sidebar .box h2 - { - font: bold 16px/1.2 Arial; - padding: 0; - } - .sidebar .box h2 span - { - overflow: hidden; - display: inline-block; - } - .sidebar .box#lookup h2 - { - background-image: none; - } - .sidebar #lookup.box h2 span - { - } - .sidebar .box#topics h2 - { - background-image: none; - } - .sidebar #topics.box h2 span - { - } - .sidebar .box#examples h2 - { - background-image: none; - } - .sidebar #examples.box h2 span - { - } - - .sidebar .box .list - { - display: block; - max-height:200px; - min-height:120px; - overflow-y:auto; - overflow-x:none; - } - .list li a:hover - { - text-decoration: underline; - } - .sidebar .box ul - { - padding-bottom:5px; - padding-left:10px; - padding-top:5px; - } - .sidebar .box ul li - { - padding-left: 12px; - background: url(../images/bullet_gt.png) no-repeat 0 5px; - margin-bottom: 5px; - } - .sidebar .bottombar - { - background: url(../images/box_bg.png) repeat-x 0 bottom; - } - .sidebar .box ul li.noMatch - { - background: none; - color:#FF2A00; - font-style:italic; - } - .sidebar .box ul li.hit - { - background: none; - color:#AAD2F0; - font-style:italic; - } - .sidebar .search form input.loading - { - background:url("../images/spinner.gif") no-repeat scroll right center transparent; - } - -.floatingResult{ - z-index:1; - position:relative; - padding-top:0px; - background-color:white; - border:solid 1px black; - height:250px; - width:600px; - overflow-x:hidden; - overflow-y:auto; -} - - .floatingResult:hover{ - display:block; - } - .floatingResult:hover{ - } - -/* end sidebar elements */ -/* content elements */ - .wrap - { - margin: 0 5px 0 208px; - overflow: visible; - } - - - - - .wrap .toolbar - { - background-color: #fafafa; - border-bottom: 1px solid #d1d1d1; - height: 20px; - position: relative; - } - .wrap .toolbar .toolblock - { - position: absolute; - } - .wrap .toolbar .breadcrumb - { - font-size: 11px; - line-height: 1; - padding: 0 0 10px 21px; - height: 10px; - } - .wrap .toolbar .toolbuttons - { - padding: 0 0 10px 21px; - right: 5px; - vertical-align: middle; - overflow: hidden; - } - .wrap .toolbar .toolbuttons .active - { - color: #00732F; - } - .wrap .toolbar .toolbuttons ul - { - float: right; - } - .wrap .toolbar .toolbuttons li - { - float: left; - text-indent: -10px; - margin-top: -5px; - margin-right: 15px; - font-weight: bold; - color: #B0ADAB; - } - - .toolbuttons #print - { - border-left: 1px solid #c5c4c4; - margin-top: 0; - padding-left: 7px; - text-indent: 0; - } - .toolbuttons #print a - { - width: 16px; - height: 16px; - } - - .toolbuttons #print a span - { - width: 16px; - height: 16px; - text-indent: -999em; - display: block; - overflow: hidden; - background: url(../images/sprites-combined.png) no-repeat -137px -311px; - } - - .toolbuttons #smallA - { - font-size: 10pt; - } - .toolbuttons #medA - { - font-size: 12pt; - } - .toolbuttons #bigA - { - font-size: 14pt; - margin-right: 7px; - } - - #smallA:hover, #medA:hover, #bigA:hover - { - color: #00732F; - } - - - .wrap .content - { - padding: 30px; - word-wrap:break-word; - } - - .wrap .breadcrumb ul - { - } - .wrap .breadcrumb ul li - { - float: left; - background: url(../images/breadcrumb.png) no-repeat 0 3px; - padding-left: 15px; - margin-left: 15px; - font-weight: bold; - } - .wrap .breadcrumb ul li.last - { - font-weight: normal; - } - .wrap .breadcrumb ul li a - { - color: #363534; - } - .wrap .breadcrumb ul li.first - { - background-image: none; - padding-left: 0; - margin-left: 0; - } - - - - - .wrap .content ol li { - background:none; - font:normal 10pt/1 Verdana; - - margin-bottom:10px; - margin-left:12px; - /*list-style-type:disc;*/ - } - - .wrap .content li - { - background: url(../images/bullet_sq.png) no-repeat 0 5px; - font: normal 400 10pt/1 Verdana; - margin-bottom: 10px; - padding-left:12px; - } - - - - - - - - - - .content li:hover {} - - .wrap .content h1 - { - font: bold 18px/1.2 Arial; - } - .wrap .content h2 - { - border-bottom:1px solid #DDDDDD; - font:600 16px/1.2 Arial; - margin-top:15px; - width:100%; - } - .wrap .content h3 - { - font: bold 14px/1.2 Arial; - font:600 16px/1.2 Arial; - margin-top:15px; - width:100%; - } - .wrap .content p - { - line-height: 20px; - padding: 5px; - } - .wrap .content table p - { - line-height: 20px; - padding: 0px; - } - .wrap .content ul - { - padding-left: 25px; - padding-top: 10px; - } - a:hover - { - color: #4c0033; - text-decoration: underline; - } - .feedback - { - float: none; - position: absolute; - right: 15px; - bottom: 10px; - font: normal 8px/1 Verdana; - color: #B0ADAB; - } - .feedback:hover - { - float: right; - font: normal 8px/1 Verdana; - color: #00732F; - text-decoration: underline; - } - .alphaChar{ - width:100%; - background-color:#F6F6F6; - border:1px solid #E6E6E6; - -moz-border-radius: 7px 7px 7px 7px; - font-size:12pt; - padding-left:10px; - margin-top:10px; - margin-bottom:10px; - } - .flowList{ - vertical-align:top; - } - - .flowList dl{ - } - .flowList dd{ - display:inline-block; - margin-left:10px; - width:250px; - } - .wrap .content .flowList p{ - padding:0px; - } - - .content .alignedsummary - { - margin: 15px; - } - - - .qmltype - { - text-align: center; - font-size: 160%; - } - .qmlreadonly - { - padding-left: 5px; - float: right; - color: #254117; - } - - .qmldefault - { - padding-left: 5px; - float: right; - color: red; - } - - .qmldoc - { - } - - *.qmlitem p - { - } - #feedbackBox - { - display: none; - -moz-border-radius: 7px 7px 7px 7px; - border: 1px solid #DDDDDD; - position: fixed; - top: 100px; - left: 33%; - height: 230px; - width: 400px; - padding: 5px; - background-color: #e6e7e8; - z-index: 4; - } - #feedcloseX - { - display: inline; - padding: 5px 5px 0 0; - margin-bottom: 3px; - color: #363534; - font-weight: 600; - float: right; - text-decoration: none; - } - - #feedbox - { - display: inline; - width: 370px; - height: 120px; - margin: 0px 25px 10px 15px; - } - #noteHead - { - font-weight:bold; - padding:10px 10px 10px 20px; - } - #feedsubmit - { - display: inline; - float: right; - margin: 4px 32px 0 0; - } - - .note - { - font-size:7pt; - padding-bottom:3px; - padding-left:20px; - } - - #blurpage - { - display: none; - position: fixed; - float: none; - top: 0px; - left: 0px; - right: 0px; - bottom: 0px; - background: transparent url(../images/feedbackground.png) 0 0; - z-index: 3; - } - .toc - { - float: right; - -moz-border-radius: 7px 7px 7px 7px; - background-color: #F6F6F6; - border: 1px solid #DDDDDD; - margin: 0 20px 10px 10px; - padding: 20px 15px 20px 20px; - height: auto; - width: 200px; - } - - .toc h3, .generic a - { - font: bold 12px/1.2 Arial; - } - - .generic{ - } - .generic td{ - padding:5px; - } - .generic .alphaChar{ - margin-top:5px; - } - - .generic .odd .alphaChar{ - background-color: #F6F6F6; - } - - .generic .even .alphaChar{ - background-color: #FFFFFF; - } - - .alignedsummary{} - .propsummary{} - .memItemLeft{} - .memItemRight{ - padding:3px 15px 3px 0; - } - .bottomAlign{} - .highlightedCode - { - margin:10px; - } - .LegaleseLeft{} - .valuelist{} - .annotated td{ - padding: 3px 5px 3px 5px; - } - .obsolete{} - .compat{} - .flags{} - .qmlsummary{} - .qmlitem{} - .qmlproto{} - .qmlname{} - .qmlreadonly{} - .qmldefault{} - .qmldoc{} - .qt-style{} - .redFont{} - code{} - - .wrap .content .toc ul - { - padding-left: 0px; - } - - .wrap .content .toc h3{ - border-bottom:0px; - margin-top:0px; - } - - .wrap .content .toc h3 a:hover{ - color:#00732F; - text-decoration:none; - } - - - .wrap .content .toc .level2 - { - margin-left: 15px; - } - - .wrap .content .toc .level3 - { - margin-left: 30px; - } - - .content .toc li - { - font: normal 10px/1.2 Verdana; - background: url(../images/bullet_dn.png) no-repeat 0 5px; - } - .relpage - { - -moz-border-radius: 7px 7px 7px 7px; - border: 1px solid #DDDDDD; - padding: 25px 25px; - clear: both; - } - .relpage ul - { - float: none; - padding: 15px; - } - .content .relpage li - { - font: normal 11px/1.2 Verdana; - } - h3.fn, span.fn - { - -moz-border-radius:7px 7px 7px 7px; - background-color: #F6F6F6; - border-width: 1px; - border-style: solid; - border-color: #E6E6E6; - font-weight: bold; - word-spacing:3px; - padding:3px 5px; - } - - .functionIndex { - font-size:12pt; - word-spacing:10px; - margin-bottom:10px; - background-color: #F6F6F6; - border-width: 1px; - border-style: solid; - border-color: #E6E6E6; - -moz-border-radius: 7px 7px 7px 7px; - width:100%; - } - - .centerAlign - { - text-align:center; - } - - .rightAlign - { - text-align:right; - } - - - .leftAlign - { - text-align:left; - } - - .topAlign{ - vertical-align:top - } - - .functionIndex a{ - display:inline-block; - } - -/* end content elements */ -/* footer elements */ - - .footer - { - min-height: 100px; - color: #797775; - font: normal 9px/1 Verdana; - text-align: center; - padding-top: 40px; - background-color: #E6E7E8; - margin: 0; - } -/* end footer elements */ - - - - - /* start index box */ - .indexbox - { - width: 100%; - display:inline-block; - } - - .indexboxcont - { - display: block; - - } - - .indexboxbar - { - background: transparent url(../images/horBar.png ) repeat-x left bottom; - margin-bottom: 25px; - - - } - - .indexboxcont .section - { - display: inline-block; - width: 49%; - *width:42%; - _width:42%; - padding:0 2% 0 1%; - vertical-align:top; - -} - - .indexboxcont .indexIcon - { - width: 11%; - *width:18%; - _width:18%; - overflow:hidden; - -} - -.indexboxcont .section { - float: left; -} - - .indexboxcont .section p - { - padding-top: 20px; - padding-bottom: 20px; - } - .indexboxcont .sectionlist - { - display: inline-block; - vertical-align:top; - width: 32.5%; - padding: 0; - } - .indexboxcont .sectionlist ul - { - margin-bottom: 20px; - } - - .indexboxcont .sectionlist ul li - { - line-height: 12px; - } - - .content .indexboxcont li - { - font: normal bold 13px/1 Verdana; - } - - .indexbox a:hover, .indexbox a:visited:hover - { - color: #4c0033; - text-decoration: underline; - } - - .indexbox a:visited - { - color: #00732f; - text-decoration: none; - } - - .indexbox .indexIcon { - width: 11%; - } - - - .indexbox .indexIcon span - { - display: block; - } - - .indexbox.guide .indexIcon span - { - width: 96px; - height: 137px; - background: url(../images/sprites-combined.png) no-repeat -5px -376px; - padding: 0; - } - - .indexbox.tools .indexIcon span - { - width: 115px; - height: 137px; - background: url(../images/sprites-combined.png) no-repeat -111px -376px; - padding: 0; - } - .indexboxcont:after - { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; - } - - - -/* start of offline spec*/ - .offline .wrapper .hd - { - background: url(../images/page.png) no-repeat 0 -15px; - } - .offline .wrapper .bd - { - background: url(../images/bg_l_blank.png) repeat-y 0 0; - } - .offline .wrapper .ft - { - background: url(../images/page.png) no-repeat 0 -90px; - } - .offline .sidebar, - .offline .feedback, - .offline .t_button, - .offline #narrowsearch, - .offline #narrowmenu - { - display: none; - } - .offline .wrap - { - margin: 0 5px 0 5px; - } - .offline .wrap .breadcrumb - { - } - - .offline .wrap .content - { - padding-top: 15px; - } - - -/* end of offline spec*/ - -/* start of creator spec*/ - .creator - { - margin-left:0px; - margin-right:0px; - padding-left:0px; - padding-right:0px; - } - .creator .wrap .content ol li { - list-style-type:decimal; - - } - .creator .header .icon, - .creator .feedback, - .creator .t_button, - .creator .feedback, - .creator #feedbackBox, - .creator #feedback, - .creator #blurpage, - .creator .indexbox .indexIcon span, - .creator .wrapper .hd, - .creator .indexbox .indexIcon, - .creator .header #nav-logo, - .creator #offlinemenu, - .creator #offlinesearch, - .creator .header #nav-topright, - .creator .header #shortCut , - .creator .wrapper .hd, - .creator .wrapper .ft, - .creator .sidebar, - .creator .wrap .feedback - { - display:none; - } - - body.creator - { - background: none; - - font: normal 13px/1.2 Verdana; - color: #363534; - background-color: #FFFFFF; - } - - - - .creator .header, .footer, .wrapper - { - max-width: 1500px; - margin: 0px; - } - - .creator .wrapper - { - position:relative; - top:50px; - } - .creator .wrapper .bd - { - - background:#FFFFFF; - } - - - .creator .header, .footer - { - display: block; - clear: both; - overflow: hidden; - } - .creator .wrap .content p - - { - line-height: 20px; - padding: 5px; - } - - .creator .header .qtref span - { - background:none; - } - - - - .creator .footer - { - border-top:1px solid #E5E5E5; - min-height: 100px; - margin:0px; - } - - .creator .wrap - { - - padding:0 5px 0 5px; - margin: 0px; - } - .creator .wrap .toolbar - { - - - border-bottom:1px solid #E5E5E5; - width:100%, - } - .creator .wrap .breadcrumb ul li a - { - /* color: #363534;*/ - color: #00732F; - } - - .creator .wrap .content - { - padding: 0px; - word-wrap:break-word; - } - - .creator .wrap .content ol li { - background:none; - font: inherit; - padding-left: 0px; - } - - .creator .wrap .content .descr ol li { - margin-left: 45px; - - } - .creator .content .alignedsummary - { - margin: 5px; - width:100%; - } - .creator .generic{ - max-width:75%; - } - .creator .generic td{ - padding:0; - } - .creator .indexboxbar - { - border-bottom:1px solid #E5E5E5; - margin-bottom: 25px; - background: none; - } - - - - .creator .header - { - width: 100%; - margin: 0; - height: auto; - background-color: #ffffff; - padding: 10px 0 5px 0; - overflow: visible; - border-bottom: solid #E5E5E5 1px; - z-index:1; - - - - - - - - - position:fixed; - } - - - .creator .header .content - { - } - .creator .header .qtref - { - color: #00732F; - position: static; - float: left; - margin-left: 5px; - font: bold 18px/1 Arial; - } - - .creator .header .qtref:visited - { - color: #00732F; - } - .creator .header .qtref:hover - { - color: #00732F; - text-decoration:none; - } - .creator .header .qtref span - { - background-image: none; - text-indent: 0; - text-decoration:none; - } - - - - - - - .creator .wrap .toolbar - { - display:block; - padding-top:0px; - } - - - - .creator .wrap .breadcrumb ul li { - font-weight: normal; - } - - .creator .wrap .breadcrumb ul li a { - /*color: #44a51c;*/ - } - - .creator .wrap .breadcrumb ul li.last a { - /*color: #363534;*/ - } - - .creator #narrowmenu ul - { - border-bottom:solid 1px #E5E5E5; - border-left:solid 1px #E5E5E5; - border-right:solid 1px #E5E5E5; - } - - .creator #narrowmenu li ul { - margin-top:-15px; - } - - - .creator .toc { - margin:10px 20px 10px 10px; - } -/* end of creator spec*/ - -} - -/* end of screen media */ - -/* start of print media */ - -@media print -{ - input, textarea, .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft - { - display: none; - background: none; - } - .content - { - position: absolute; - top: 0px; - left: 0px; - background: none; - display: block; - } -} -/* end of print media */ diff --git a/doc/src/style/style_ie6.css b/doc/src/style/style_ie6.css deleted file mode 100644 index 16fb8505..00000000 --- a/doc/src/style/style_ie6.css +++ /dev/null @@ -1,54 +0,0 @@ -.indexbox, .indexboxcont, .group { - zoom: 1; - height: 1%; -} - -.sidebar { - margin-left: 3px; - width: 199px; - overflow: hidden; -} - -.sidebar .search form { - position: relative; -} - -.sidebar .search form fieldset { - position: absolute; - margin-top: -1px; -} - -.sidebar .search form input#searchstring { - border: 1px solid #fff; - height: 18px; -} - -.wrap { - zoom: 1; -} - -.content, -.toolbar { - zoom: 1; - margin-left: -3px; - position: relative; -} - -.indexbox { - clear: both; -} - -.indexboxcont .section { - zoom: 1; - float: left; -} - -.indexboxcont .sectionlist { - zoom: 1; - float: left; -} - -.wrap .toolbar .toolbuttons li { - text-indent: 0; - margin-right: 8px; -}
\ No newline at end of file diff --git a/doc/src/style/style_ie7.css b/doc/src/style/style_ie7.css deleted file mode 100644 index afbff5f8..00000000 --- a/doc/src/style/style_ie7.css +++ /dev/null @@ -1,19 +0,0 @@ -.indexbox, .indexboxcont, .group { - min-height: 1px; -} - -.sidebar .search form input#searchstring { - border: 1px solid #fff; - height: 17px; -} - - -.indexboxcont .section { - zoom: 1; - float: left; -} - -.indexboxcont .sectionlist { - zoom: 1; - float: left; -} diff --git a/doc/src/style/style_ie8.css b/doc/src/style/style_ie8.css deleted file mode 100644 index e69de29b..00000000 --- a/doc/src/style/style_ie8.css +++ /dev/null diff --git a/doc/src/style/superfish.css b/doc/src/style/superfish.css deleted file mode 100644 index a9939090..00000000 --- a/doc/src/style/superfish.css +++ /dev/null @@ -1,51 +0,0 @@ -.sf-menu, .sf-menu * { - margin: 0; - padding: 0; - list-style: none; -} -.sf-menu { - line-height: 1.0; -} -.sf-menu ul { - position: absolute; - top: -999em; - width: 10em; /* left offset of submenus need to match (see below) */ -} -.sf-menu ul li { - width: 100%; -} -.sf-menu li:hover { - visibility: inherit; /* fixes IE7 'sticky bug' */ -} -.sf-menu li { - float: left; - position: relative; -} -.sf-menu a { - display: block; - position: relative; -} -.sf-menu li:hover ul, -.sf-menu li.sfHover ul { - left: 0; - top: 2.5em; /* match top ul list item height */ - z-index: 99; -} -ul.sf-menu li:hover li ul, -ul.sf-menu li.sfHover li ul { - top: -999em; -} -ul.sf-menu li li:hover ul, -ul.sf-menu li li.sfHover ul { - left: 10em; /* match ul width */ - top: 0; -} -ul.sf-menu li li:hover li ul, -ul.sf-menu li li.sfHover li ul { - top: -999em; -} -ul.sf-menu li li li:hover ul, -ul.sf-menu li li li.sfHover ul { - left: 10em; /* match ul width */ - top: 0; -} diff --git a/doc/src/style/superfish_skin.css b/doc/src/style/superfish_skin.css deleted file mode 100644 index 112b26ae..00000000 --- a/doc/src/style/superfish_skin.css +++ /dev/null @@ -1,83 +0,0 @@ - -/*** DEMO SKIN ***/ -.sf-menu { - float: left; - margin-bottom: 1em; -} -.sf-menu a { - border-left: 1px solid #fff; - border-top: 1px solid #CFDEFF; - padding: .75em 1em; - text-decoration:none; -} -.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/ - color: #13a; -} -.sf-menu li { - background: #BDD2FF; -} -.sf-menu li li { - background: #AABDE6; -} -.sf-menu li li li { - background: #9AAEDB; -} -.sf-menu li:hover, .sf-menu li.sfHover, -.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active { - background: #CFDEFF; - outline: 0; -} - -/*** arrows **/ -.sf-menu a.sf-with-ul { - padding-right: 2.25em; - min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */ -} -.sf-sub-indicator { - position: absolute; - display: block; - right: .75em; - top: 1.05em; /* IE6 only */ - width: 10px; - height: 10px; - text-indent: -999em; - overflow: hidden; - background: url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */ -} -a > .sf-sub-indicator { /* give all except IE6 the correct values */ - top: .8em; - background-position: 0 -100px; /* use translucent arrow for modern browsers*/ -} -/* apply hovers to modern browsers */ -a:focus > .sf-sub-indicator, -a:hover > .sf-sub-indicator, -a:active > .sf-sub-indicator, -li:hover > a > .sf-sub-indicator, -li.sfHover > a > .sf-sub-indicator { - background-position: -10px -100px; /* arrow hovers for modern browsers*/ -} - -/* point right for anchors in subs */ -.sf-menu ul .sf-sub-indicator { background-position: -10px 0; } -.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; } -/* apply hovers to modern browsers */ -.sf-menu ul a:focus > .sf-sub-indicator, -.sf-menu ul a:hover > .sf-sub-indicator, -.sf-menu ul a:active > .sf-sub-indicator, -.sf-menu ul li:hover > a > .sf-sub-indicator, -.sf-menu ul li.sfHover > a > .sf-sub-indicator { - background-position: -10px 0; /* arrow hovers for modern browsers*/ -} - -/*** shadows for all but IE6 ***/ -.sf-shadow ul { - background: url('../images/shadow.png') no-repeat bottom right; - padding: 0 8px 9px 0; - -moz-border-radius-bottomleft: 17px; - -moz-border-radius-topright: 17px; - -webkit-border-top-right-radius: 17px; - -webkit-border-bottom-left-radius: 17px; -} -.sf-shadow ul.sf-shadow-off { - background: transparent; -} diff --git a/doc/src/tutorials/penguin.qdoc b/doc/src/tutorials/penguin.qdoc deleted file mode 100644 index e973090d..00000000 --- a/doc/src/tutorials/penguin.qdoc +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example qt3d/penguin - \title Loading a 3DS model with Qt3D - - This tutorial shows how Qt3D can be used to load a simple - model object in 3D Studio Max (3DS) format with a perspective - camera view. - - We start by defining a class that inherits from QGLView, which - provides some basic scene setup logic and 3D camera navigation: - - \snippet qt3d/penguin/modelview.h class-defn - - Refer first to the \l{Teapot Example} for the basics of using - the QGLView class, lighting and so on. - - When the application starts up, we load the scene from its - resource file, and store the result in a member variable, so - we can refer to it in the paint function: - - \snippet qt3d/penguin/modelview.cpp initialize - - In the teapot example we had to specify appropriate effects but - the model loader sets appropriate effects on the scene for us. - - \snippet qt3d/penguin/modelview.cpp paint - - Here in the paint function we call the \c{draw()} function of - the scene's main object, in order to display the fully - loaded model. - - This was really just two lines of code: one to load the model - (once off, when the application initialized) and another line to - display the model (every time the paint function is called). - - \image penguin-0-screenshot.png - - The result is pretty good for two lines of code, but it could - stand some improvements. - - Here we are looking down onto the top of our penguin's head, and - even when we stand him on his feet, he is too close to the camera - to all fit in the frame. - - Let's make a few changes to have our penguin display nicely - when the application opens. - - \snippet qt3d/penguin_advanced/modelview.cpp initialize - - First of all, let move the camera away from the penguin and up - so he fits in the frame and we can get a better angle on him, - when the application loads. - - If use dragging and so on in the QGLView this will change the - camera from these intial settings, but this setup means the camera - will be well positioned at the moment the application opens. - - We don't want to position the camera in the paintGL function, - because that would defeat QGLViews camera dragging features and - we would not be able to interact with the view properly. - - We'll also save the main object away in a member variable so that - the overhead of searching the scene is not incurred every paint. - - Finally a pose for our penguin is calculated - its a turn around the - x axis, so he is standing up on his feet; and a turn around the y - axis, so he shows a bit more of his profile. The pose is - calculated and stored as a quaternion - we want the x twist first - so that goes last in the product of the two quaternions. - - \snippet qt3d/penguin_advanced/modelview.cpp paint - - Now all that remains in the updated paint function is to apply the - new pose, and then paint the penguin. - - \image penguin-screenshot.png - - \l{qt3d-examples.html}{Return to Tutorials}. -*/ diff --git a/doc/src/tutorials/sceneformat.qdoc b/doc/src/tutorials/sceneformat.qdoc deleted file mode 100644 index 3774b6a1..00000000 --- a/doc/src/tutorials/sceneformat.qdoc +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \title Writing a scene format plug-in for Qt3D - \keyword Scene Format Plugin - \example sceneformats/obj - - Scene format plugins are used to load external 3D model file - formats like \bold 3DS, \bold obj, and so on. In this tutorial we will - do a walk-through of the \bold obj scene format plugin to - demonstrate what is required to add a new format to Qt3D. - - Models are loaded by QGLAbstractScene::loadScene(), which locates - a suitable plug-in for the format, and then asks the plug-in to - parse the data and create a QGLAbstractScene object that describes - the 3D objects in the scene. - - We start by declaring an instance of QGLSceneFormatPlugin and - arranging for it to be registered with the Qt plug-in system: - - \snippet sceneformats/obj/main.cpp 1 - \snippet sceneformats/obj/main.cpp 4 - - The two functions we need to implement are - \l{QGLSceneFormatPlugin::keys()}{keys()} and - \l{QGLSceneFormatPlugin::create()}{create()}. The first of these - returns a lower-case list of the file extensions and MIME types - that are supported by the plug-in: - - \snippet sceneformats/obj/main.cpp 2 - - The create function is called to create the QGLSceneFormatHandler - which is used to load the model data: - - \snippet sceneformats/obj/main.cpp 3 - - The create function is passed the QIODevice for the data, - the URL of where the data was found, and the chosen format. - These parameters can be used by the plug-in to decide which - handler to return if multiple formats are supported by - the plug-in. In the case of obj, we always return the same - handler so we don't need to inspect the passed parameters. - - QGLAbstractScene::loadScene() will set the parameters on - the QGLSceneFormatHandler object and then call - \l{QGLSceneFormatHandler::read()}{read()}: - - \snippet sceneformats/obj/qglobjscenehandler.h 1 - \dots - \snippet sceneformats/obj/qglobjscenehandler.h 2 - - The read function will typically construct a QGLBuilder - for the geometry in the scene and then parse all of the objects, - materials, textures, and so on. Ultimately, it needs to produce a - QGLAbstractScene object, populated with QGLSceneNode instances - for each of the objects in the model file. In our case, we create - an instance of \c QGLObjScene: - - \snippet sceneformats/obj/qglobjscene.h 1 - \dots - \snippet sceneformats/obj/qglobjscene.h 2 - \dots - \snippet sceneformats/obj/qglobjscene.h 3 - - The most important function is the override for - QGLAbstractScene::objects(), which allows the rest of Qt3D - to query the full list of objects in the model file. - The scene object can also override QGLAbstractScene::object() - if it has an efficient method to quickly look up an object by name. - - The scene should also override QGLAbstractScene::mainNode() - to return the main mesh node in the scene. Usually this is - the first element in the list returned by QGLAbstractScene::objects() - but doesn't have to be. - - Note: the plug-in does not need to use QGLBuilder and the - other Qt3D classes to load the model if it doesn't want to. - It can instantiate subclasses of QGLSceneNode that override - the draw() method and draws the object using whatever technique - the plug-in chooses. It just needs to leave the OpenGL state - in the condition that it found it so that other parts of Qt3D - will not be confused. - - Once you have written a plug-in for your new format, you should - install it into \c{$QTDIR/plugins/sceneformats}. You can test it - by running the \c{modelviewer} program and trying to load models - in your new format. When debugging, it can be useful to set the - \c{QT_DEBUG_PLUGINS} environment variable to 1. - - \l{qt3d-examples.html}{Return to the main Tutorials page}. -*/ diff --git a/doc/src/tutorials/shaders.qdoc b/doc/src/tutorials/shaders.qdoc deleted file mode 100644 index dc20099b..00000000 --- a/doc/src/tutorials/shaders.qdoc +++ /dev/null @@ -1,388 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \title Using GLSL shaders in QtQuick3D - \example quick3d/shaders - - - In this tutorial, we will show how to apply QML property animations to - GLSL shaders in a QtQuick3D application. - - Starting with a relatively simple shader program, we are going to - manipulate various parameters to explain how both the shader and the QML - integration work (This is quite a lot to start a tutorial with, but we'll - focus on each small piece of it in turn): - - \raw HTML - <table align="left" width="100%"> - <tr class="qt-code"><td> - \endraw - \snippet quick3d/shaders/shader-tutorial.qml 1 - \raw HTML - </td><td align="right"> - \endraw - \inlineimage tutorials/shader-tutorial.png - \raw HTML - </td></tr> - </table> - \endraw - - At the highest level, shaders in QtQuick3D are created using the ShaderProgram - element. The ShaderProgram element in this example has the id \a program, - and applying it to the teapot is as simple as assigning it to the \c effect - property of an Item3D derived element. - - The two most important properties of the ShaderProgram element are the - \c vertexShader and \c fragmentShader properties, which are strings - containing the code for the respective shader programs. Broadly speaking, - the vertex shader is run on each vertex in a model (for example, the 8 - corners of a cube) to calculate the final position of each point, while the - fragment shader is run on each pixel visible onscreen to calculate it's - color. - - The other attribute we use in this tutorial is the \c texture property. - This property is connected to the \c qt_Texture0 attribute in our shader - programs, and we'll cover how it's used shortly. - - \section1 Texture Coordinates and Textures (shader-tutorial-1-textures.qml) - - To start with, there are a couple of obvious problems with our starting - point - the Qt is upside down and back to front, and it's also boring - (before you ask, the reasons for the image being the wrong way around are - also boring). - - First, let's get the logo the right way up. The key here is the texture - coordinates. Let's look at it's declaration in the vertex shader for a - moment: \code attribute highp vec4 qt_MultiTexCoord0; \endcode - - The \c attribute declaration indicates that this is a per-vertex value - that we get from our model. Our teapot has a position, a normal, and - texture coordinates for each vertex, and qt3d automatically provides - these to us through the \c qt_Vertex, \c qt_MultiTexCoord0, and \c - qt_Normal attributes. (we don't care about normals until we get to - lighting). - - The \c mediump tag indicates that we want pretty good accuracy on this - attribute, but it doesn't need double precision. It's a hint for - embedded systems to save bandwidth (highp is usually used for positions, - and lowp is generally only suitable for colors, and the rule of thumb is - to use as little memory as you can get away with). - - \c vec4 indicates that the value is a 4-element vector. Our texture is - 2D, so we only care about the first two elements, but there are 3D - textures and cube maps out there. - - To fix the image's orientation we can simply reverse the sign when we - pass the texture coordinate to our fragment shader because the default - behaviour is for texture coordinates wrap around if they are higher than - 1.0 or lower than 0.0: - \code texCoord = -qt_MultiTexCoord0; \endcode - - In order to fix the boring, we're going to have to add a bit more QML - first. We need to add a property to our ShaderProgram element, and a - matching variable to the shader program. The types match up exactly - between QML and GLSL, but if the variables have the same name they - should automatically be hooked up, so we just add this to the - ShaderProgram element: - \code property real textureOffsetX : 1.0 - NumberAnimation on textureOffsetX - { - running: true; loops: Animation.Infinite - from: 0.0; to: 1.0; - duration: 1000 - } - \endcode - and we add this to the vertex shader: - \code uniform mediump float textureOffsetX; \endcode - - The final step is to work our new variable into the program, by changing - the texCoord assignment. We'll add our animated variable to our horizontal - texture coordinate, which will effectively scroll our texture around our - teapot: - \code - texCoord = vec4(-qt_MultiTexCoord0.s - textureOffsetX, - -qt_MultiTexCoord0.t, - 0,0); - \endcode - - Adding an additional texture is done by adding another uniform. The - ShaderProgram element interprets string properties as URIs for texture - resources, so adding a second texture is as easy as: - \code - property string texture2: "textures/basket.jpg" - \endcode - In order to have a smooth transition back and forth, we'll add and animate - a second property to use to blend the two textures: - \code - property real interpolationFactor : 1.0 - SequentialAnimation on interpolationFactor - { - running: true; loops: Animation.Infinite - NumberAnimation { - from: 0.0; to: 1.0; - duration: 2000 - } - PauseAnimation { duration: 500 } - NumberAnimation { - from: 1.0; to: 0.0; - duration: 2000 - } - PauseAnimation { duration: 500 } - } - \endcode - - Next we need to use all of that information in the fragment shader: - \code - varying highp vec4 texCoord; - uniform sampler2D qt_Texture0; - uniform sampler2D texture2; - uniform mediump float interpolationFactor; - - void main(void) - { - mediump vec4 texture1Color = texture2D(qt_Texture0, texCoord.st); - mediump vec4 texture2Color = texture2D(texture2, texCoord.st); - mediump vec4 textureColor = mix(texture1Color, texture2Color, - interpolationFactor); - gl_FragColor = textureColor; - } - \endcode - - In general, textures needs to have the same name in the shaders as in the - ShaderProgram element in order to be automatically connected, but \c - qt_Texture0 is special cased and very slightly faster, so it's good to use - it first. - - \c mix() is another handy built in GLSL function that interpolates linearly - between two values or vectors. (You can find details of all the built in - functions in the official OpenGL Shader Language specification available at - http://www.khronos.org/opengl/ ) - - Finally, let's make one more change to make this example pop. If you're - a performance fanatic, it just might have rankled that we padded out our - texture coordinates with two zeros, and passed them in for processing - on every single pixel of our teapot. - - Let's make use of that space by putting a second set of co-ordinates in - there to use with our second texture. Let's change our texture assignment - to this: - \code - texCoord.st = vec2(-qt_MultiTexCoord0.s - textureOffsetX, - -qt_MultiTexCoord0.t); - texCoord.pq = vec2(-qt_MultiTexCoord0.s + textureOffsetX, - -qt_MultiTexCoord0.t); - \endcode - Now the top half of our vector contains co-ordianates spinning in the - opposite direction. Back in the fragment shader, we just need use these - instead for our second texture color, so let's change the \c texture2Color - assignment to this, and really fix that boring: - \code - mediump vec4 texture2Color = texture2D(texture2, texCoord.pq); - \endcode - - \section1 Varying values (shader-tutorial-varying.qml) - - The left hand side value is our \c varying attribute \c texCoord. - \c varying values are how the vertex shader communicates with the - fragment shader, and the declaration has to be identical in both shaders. - \c varying values are calculated once for each - vertex, but the values are interpolated across the shapes. The - shader-tutorial-varying.qml shows this visually using the Pane - class and a neat debugging trick - using the texture coordinates as - a color. Even with only 4 vertexes the texture coordinates are smeared - smoothly across the shape: - \table - \row - \o \code gl_FragColor = vec4(mod(texCoord.x, 1.0), - mod(texCoord.y, 1.0), 0.0, 1.0); \endcode - \o - \o \image tutorials/shader-tutorial-varying.png - \endtable - - - \section1 Vertexes and Matrices (shader-tutorial-2-vertex-shader.qml) - - Let's go back to the vertex shader. As already mentioned, the - vertex shader's primary function is to generate the final position of a - vertex. - - First, let's look at \c qt_Vertex. This is the value we're getting out - of our model, the actual points on our shape. Manipulating this value - will lets us change the position of the points somewhat independantly. - - For this tutorial, we'll create a squashing effect that might work for - something rising out of water, or something rubbery being squashed down. - - What we need to do is create a floor, where vertexes above the floor - retain their position, and vertexes below it are clamped to (nearly) that - value. Then we move the model relative to this floor to create a nice - effect. - - We need to use some knowledge that we have about the model for this to - work - most notably it's height, and it's bottom. A bit of experimenting - suggests that 2.0 for height and -1.0 for bottom are close enough. - - We need to introduce a couple more GLSL things here. \c max() is one of - the GL SL built in functions, selecting the higher of the two arguments as - you might expect. - - The \c foo.xyzw are called \i twiddles, and are - convenient and efficient ways to pull out specific elements of vector - areguments. You can see in this example, that we use twiddles to get out - the x, z, and w values from our original vector and substitute in our own - y value. For convenience, there are 3 different sets of twiddles that are - all equivalent: foo.xyzw (co-ordinates), foo.rgba (colors), and - foo.stpq (texture coordinates). As far as GLSL is concerned, though, - they're just vectors, and effectively just commenting your code. - - The \c vec4() function will accept whatever combination of values and - twiddles you throw at it, and mold them back into a 4 element vector. - - What this function is doing is moving the model down the screen (which for - us, here, is along the y axis in the negative direction). - We draw an imaginary line where the bottom of the model used to be, and if - the vertex ends up below that line, we move it back to just past the line. - - "Just past" is important. Graphics cards get confused if vertexes are too - close together, and the result is ugly. Try taking out the - "\c {qt_Vertex.y * 0.01}" if you'd like to see what it looks like. - - \code - float newY = max(qt_Vertex.y - squashFactor * modelSize, - qt_Vertex.y * 0.01 + modelBottom); - \endcode - - - \code - const float modelSize = 2.0; - const float modelBottom = -1.0; - float newY = max(qt_Vertex.y - squashFactor * modelSize, - qt_Vertex.y * 0.01 + modelBottom); - - gl_Position = qt_ModelViewProjectionMatrix * - vec4(qt_Vertex.x, newY, qt_Vertex.zw); - \endcode - - Hopefully, that makes the function of the \c qt_Vertex attribute clear, so - next we'll look at the Model/View/Projection matrices. - - The model matrix is generally used to place an object in a scene. In the - simplest case, this might just be "up and to the left a bit", but it's - often inherited from a parent. It's very easy mathematically to combine - the matrices in such a way that one object is always in the same relative - position to another ("The hip bones connected to the thigh bone"). - - The view matrix is generally used much like a camera is in a movie, for - panning around a whole scene at once. Manipulating the view matrix is also - commonly used for effects like mirrors. - - The projection matrix (\c qt_ProjectionMatrix) functions much like a - camera does when you take a - picture, converting all the 3d points in a scene into the 2d points on the - screen. - - We won't be exploring the matrices individually, but let's explore what - happens if we use the same effect that we just used on the vertex after - the transformation matrices are applied. - - Firstly, we're going to need multiple teapots to see the difference, so - let's add those in. We want to move them all together, so we'll wrap - them in an Item3D, and apply our animations to that item instead of - the teapots directly. - \code - - Item3D { - z: -8.0 - transform: [ - Rotation3D { - NumberAnimation on angle { - running: true; loops: Animation.Infinite - from: 0; to: 360; duration: 5000 - } - axis: Qt.vector3d(0, 0, 1.0) - } - ] - - TutorialTeapot {id: teapot1; effect: program; y:2.0; x:0.0} - TutorialTeapot {id: teapot2; effect: program; y:-1.0; x:-1.732} - TutorialTeapot {id: teapot3; effect: program; y:-1.0; x:1.732} - } - \endcode - - In order to show the difference, what we want to do now is the same sort - of effect as the previous example, only applied to the positions after - the matrices have been applied, so our new vertex shader looks like this: - \code - attribute highp vec4 qt_Vertex; - uniform mediump mat4 qt_ModelViewProjectionMatrix; - - attribute mediump vec4 qt_MultiTexCoord0; - varying mediump vec4 texCoord; - - void main(void) - { - const float modelBottom = -4.0; - - vec4 workingPosition = qt_ModelViewProjectionMatrix * qt_Vertex; - float newY = max(workingPosition.y, - workingPosition.y * 0.15 + modelBottom); - workingPosition.y = newY; - gl_Position = workingPosition; - - texCoord = -qt_MultiTexCoord0; - } - \endcode - - There's nothing new here, we're just tweaking a few numbers for the new - effect and manipulating the vertexes after the matrices have been applied. - The result is an imaginary line across the whole scene, and when any part - of any teapot dips below that line we deform it as though it's being - squished or refracted. - - The obvious difference is that when you're manipulating \c qt_Vertex, - the inputs, outputs, and changes are relative to the model. After the - matrices are applied, - - We'll leave adding a pretty watery surface as an exercise for the reader. - - - - \section1 Lighting - - Finally, we'll add lighting. We've left lighting till last because it - requires a lot of additional variables, and it is not within the scope of - this tutorial to explore them all individually. There are many better - resources readily available, and the techniques already covered can be - used to explore each element. - - - For further reading, the full specification for the OpenGL Shader Language - is available from the Khronos website at http://www.khronos.org/opengl/ - - \l{qt3d-examples.html}{Return to the main Tutorials page}. -*/ diff --git a/doc/src/tutorials/simpleobject.qdoc b/doc/src/tutorials/simpleobject.qdoc deleted file mode 100644 index db6c3be3..00000000 --- a/doc/src/tutorials/simpleobject.qdoc +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \title Applying Transformations and Materials - \keyword Object Effects - \example qt3d/cube4 - - In this tutorial we will apply transformations and materials to a - simple cube object to demonstrate how to modify the QGLPainter - state to achieve different effects. - - \section2 Cube in QtQuick3D - - It is quite simple to achieve these effects in QtQuick3D: - - \snippet quick3d/cube/qml/cube.qml 1 - - \section2 Cube in Qt3D - - In the C++ world we start by declaring a view class to show our cube - on the screen: - - \snippet qt3d/cube1/cubeview.h 1 - - QGLView provides most of the logic for initializing the view, - setting the camera position, and handling navigation via - keyboard and mouse events. In the constructor we use - QGLBuilder to create the geometry for the cube object that - we will be using in later steps: - - \snippet qt3d/cube1/cubeview.cpp 1 - - Then it is a simple matter to draw the object in our \c{paintGL()} - method: - - \snippet qt3d/cube1/cubeview.cpp 2 - - If we run the program now, we get the following output, which isn't - very cube-like: - - \image tutorials/cube1-screenshot.png - - The problem is that we are looking at the cube straight onto its - front face. So the rest of the cube is hidden from our view and - it looks like a square. Let's modify the modelview transformation - matrix a little bit to apply a 45 degree rotation around the - axis (1, 1, 1): - - \snippet qt3d/cube2/cubeview.cpp 2 - - Now the results are a little better: - - \image tutorials/cube2-screenshot.png - - The cube is still a little odd-looking however. This is because - up until now we have been using the default flat color effect - in QGLPainter that colors the faces with a uniform color - (white in this case). So let's change to a lit material effect - with a nice green color: - - \snippet qt3d/cube3/cubeview.cpp 2 - - That's much better; now it looks like a cube: - - \image tutorials/cube3-screenshot.png - - To complete this tutorial, let's make the cube a little more - interesting by adding a texture to the side: - - \snippet qt3d/cube4/cubeview.h 1 - \dots - \snippet qt3d/cube4/cubeview.h 2 - \snippet qt3d/cube4/cubeview.cpp 1 - \dots - \snippet qt3d/cube4/cubeview.cpp 2 - \snippet qt3d/cube4/cubeview.cpp 3 - - \image tutorials/cube4-screenshot.png - - \l{qt3d-examples.html}{Return to the main Tutorials page}. -*/ |