kgv [Wed, 6 May 2015 13:05:47 +0000 (16:05 +0300)]
0026165: Visualization, TKOpenGl - fix FBO blitting on some mobile devices
OpenGl_Texture::Init() - initialize FBO textures with GL_TEXTURE_WRAP_ set to GL_CLAMP_TO_EDGE,
since some devices do not support GL_REPEAT (which is default) in such combination.
OpenGl_Font::createTexture() - define texture parameters explicitly.
OpenGl_FrameBuffer::Init() create Depth render buffer object instead of texture
on devices which do not support GL_DEPTH24_STENCIL8.
1. Function IntImp_Int2S::ChangePoint() has been added (see cdl for detail information).
2. Attempt to forbidden break WLine if it goes along surface boundary.
1. Develop special sewing algorithm.
2. DRAW-command "fastsewing" has been created (see help for detail information).
3. BRepLib::EnsureNormalConsistency() method has been added (see help for detail information).
4. DRAW-command correctnormals has been created (see help for detail information).
Technical overview refactored; text duplicating information contained in user guides removed.
Some images are regenerated for better presentation.
Problems with formatting and section tags corrected in user guides.
isk [Tue, 5 May 2015 08:06:29 +0000 (11:06 +0300)]
0022785: Draw Harness - add possibility to remove a text drawn by the command vdrawtext
AIS_TextLabel - new public class to display simple text labels (based on MyTextClass private class from Draw Harness).
ViewerTest::Display() - add more reliable replacement for VDisplayAISObject() with no viewer update flag.
vdrawtext command redesign:
- Use new AIS_TextLabel class instead of private MyTextClass.
- Take object name and allow to clear labels from the Viewer.
- Use parameter name + parameter value syntax instead of strict list of mandatory arguments.
- Use [0; 1] range for colors and accept names.
- Drop redundant argument "isMultiByte".
- Support argument -noupdate to skip Viewer update.
0026138: Problems with writing periodic BSplines into IGES
Remove making BSpline surfaces rational,
Add shifting of pcurves on periodic BSpline surfaces,
Add cutting of segment from such surfaces.
Add additional check for need of make segment
Update of test-cases according to the new behavior
Calculate radius of circumcircle as maximum difference between its center and vertices or reference triangle.
Draw test command OCC25547 has been implemented.
Small optimizations for speed.
Update of test-cases according to the new behaviour
New features:
class BOPTools_AlgoTools2D
method:
Standard_Integer BOPTools_AlgoTools2D::AttachExistingPCurve
(const TopoDS_Edge& aEold,
const TopoDS_Edge& aEnew,
const TopoDS_Face& aF,
const Handle(IntTools_Context)& aCtx)
has been added.
Purpose:
To attach P-Curve on surface of the face <aF> from the edge <aEold>
to the edge <aEnew>
It returns 0 in case of success.
Method Extrema_GenExtCC::Perform() refactored to avoid very inefficient (O(N^2)) algorithm of removal of duplicate points at the end. Instead, duplications are checked when new points are added.
Fields are initialized in constructors of the class Extrema_GenExtCC; unused instances of generic classes (duplications) ELCC and ELCC2d removed.
0026025: Visualization, TKOpenGl - stereoscopic output does not work
OpenGl_View::Render() - pass target FBO as parameter.
OpenGl_Context - revise Read/Write buffers management logic, taking into account FBOs.
Graphic3d_Camera::UpdateProjection() - setup LProjection and RProjection
the same as MProjection in case of Projection_MonoLeftEye/Projection_MonoRightEye
for API consistency.
0026080: Wrong result obtained by General Fuse operator.
Changes:
class IntTools_FClass2d
- method:
TopAbs_State IntTools_FClass2d::Perform
(const gp_Pnt2d& _Puv,
const Standard_Boolean RecadreOnPeriodic) const
has been changed.
The value of tolerance
For the value of tolerance for classification,
the minimum (among UResolution, VResolution) value is used.
azv [Tue, 20 Jan 2015 14:06:03 +0000 (17:06 +0300)]
0024285: Updates of PLib::EvalPolynomial for code acceleration
Functions PLib::EvalPolynomial and PLib::NoDerivativeEvalPolynomial are refactored to allow generation of faster code:
1. Iteration by degree is made in outer loop
2. Avoided pointer arithmetic
3. Recursive templates are used to expand loop by dimension in specific cases (1-15)
0026098: The result of General Fuse operation is self-interfered shape
class BOPTools_AlgoTools
method static Standard_Real IntersectCurves2d(const gp_Pnt& aPV,
const TopoDS_Face& aF,
const Handle(Geom_Surface)& aS,
const TopoDS_Edge& aE1,
const TopoDS_Edge& aE2)
Check the validity of the 2d intersection before applying the result.
0025959: Draw Harness - do not turn on Z-clipping implicitly by mouse ring
Clipping planes now can not be switched on by mouse ring or both right and left mouse buttons. To do this, user has to press certain button or call certain command.
0025672: V3d_View::ConvertToGrid doesn't work for grid if the grid plane's origin is not identical to camera origin.
Patched V3d_View::ConverToGrid method to fix the problem
Added test function "vprivilegedplane" for setting/printing grid plane's coordinate system
Added test case bugs/vis/bug25672 to check the issue
remarks from kgv
Warnings eliminating (similar to CR25671)
0025671: V3d_View::Convert doesn't work as expected in GRID active mode.
Removed code of converting coordinates to grid in V3d_View::Convert, ::ConvertWithProj methods.
Added test case verifying MoveTo with activated grid and testing V3d_View::Convert, ::ConvertWithProj methods.
Added new test command "vconvert" for testing the conversion methods.
0025783: Visualization - allow Z-layer to draw 2D objects and to make it alternative to Overlay and Underlay
Add one more pre-defined Z-layer Graphic3d_ZLayerId_BotOSD.
Define new Transformation Persistence flags Graphic3d_TMF_2d and Graphic3d_TMF_2d_IsTopDown
for displaying objects in screen coordinates.
Anchor point defines angle of the screen to display the object in similar way as for Graphic3d_TMF_TriedronPers.
Extend Draw Harness command vdisplay with new options:
-overlay as alias for -toposd.
-underlay and -botosd.
-noselect to prevent automatic selection activation.
-dispMode and -highMode to define displaying and highlighting modes.
-2d, -2dtopdown and -3d to manage displaying in screen coordinates.
-trsfPers and -trsfPersPos for Transformation Persistence options.
0026035: Length dimension can't be built between two vertices in Draw
Fixed drawing length dimension for two vertices in Draw
Fixed exception when trying to draw length dimension for face-point or point-face
Fixed drawing length dimension for edge-vertex/point and vertex/point-edge
0025593: Number of intersection points for 2d curves depends on the order of arguments in command "2dintersect"
1. Unification of the polygons creation (it is regardless of arguments order).
2. Output of 2dintersect DRAW-command was changed.
3. Geom2dGcc_Circ2d2TanRadGeo.cxx:
Precise intersection point found by Extrema Curve-Curve method (dot product between every tangent vector and vector between points on two curves must be equal to zero).
4. Some comments have been translated from French to English.
1. Comment for IsOpposite() method has been amended.
2. Method Geom2dAPI_InterCurveCurve::Segment() has been rewritten in accordance with the Bug description requirements (described problem has been confirmed).
0024803: improve the result of v/v interference for two vertices case
Changes:
class BOPTools_AlgoTools
- method:
void BOPTools_AlgoTools::MakeVertex(BOPCol_ListOfShape& aLV,
TopoDS_Vertex& aVnew)
has been changed.
The section for case of two vertices has been added
0025742: A partition of 2 shapes stresses a performance issue
1. Algorithm of aStepU1 computing was changed.
2. Interface to allow convert gp_XY(Z) to the math_Vector has been added.
3. Algorithm of point in V-boundaries computing has been changed.
4. Situation when intersection line walks along V-boundary of cylinder(s) is processed better.
5. Intersection lines are created with their individual step along U1 parameter.
6. Points processing has been moved to the assembly level.
7. Extend output of "bfuseblend" and "bcutblend" DRAW-command.
8. New option for "bfuseblend" and "bcutblend" command has been added.