Make vcamera command syntax more clear.
Restore command vraytrace as alias to vrenderparams.
Replace occurencies of atof() by Draw::Atof() in ViewerTest_ViewerCommands.cxx.
-Now in ViewerTest_ViewerCommands's method VClipPlane() Graphic3d_TypeOfMaterial::SetAmbientColor() and
Graphic3d_TypeOfMaterial::SetDiffuseColor() are used instead of
Graphic3d_TypeOfMaterial::SetColor()
-New test case added: tests\bugs\vis\bug25229
-Formatting
All inclusions of "config.h" were removed.
All places where macros defined by config.h were checked and removed
Small corrections for mac os.
Unused code in file OSD_Disk.cxx was removed.
Unused macros and includes were removed from samples and code.
Added necessary includes for MacOS.
Correct new additional compilation warning on Linux platform.
Fix for error in OSD_Chronometer on Debian70/Fedora18
0023422: Selection problems when using SetLocation.
0024756: AIS_ConnectedInteractive does not support nested AIS_ConnectedInteractive
0025103: Visualization - Regression in interactive detection
Each PrsMgr_PresentableObject has list of PrsMgr _PresentableObject called myChildren.
Transformation PrsMgr_PresentableObject applied to its children every time when its own transformation affected. This hierarchy does not propagate to Graphic3d level and below.
PrsMgr_PresentableObject send its combined (according to hierarchy) transform down to Graphic3d_Structure.
AIS_ConnectedInteractive and AIS_MultiplyConnectedInteractive are reused but behavior has been changed.
AIS_ConnectedInteractive now is an instance of object. It reuses geometry of connected object but have own transformation, material, visibility flag etc. This connection propagated down to OpenGl level to OpenGl_Structure. For this task old “connected” mechanism has been reused.
AIS_MultiplyConnectedInteractive represents assembly which doesn’t have its own presentation. Assemblies are able to participate is scene hierarchy and intended to handle a grouped set of instanced objects. It behaves as single object in terms of selection. It applies high level transform to all sub-elements since it located above in the hierarchy.
All AIS_MultiplyConnectedInteractive are able to have child assemblies. Deep copy of object instances performed when one assembly attached to another.
Correction test cases for CR24837
Test cases for issue CR23422
Test cases for issue CR24756
Test cases for issue CR25103
Viewer3d sample fixed.
1) Add SelectMgr_EntityOwner::IsSelected() and SelectMgr_EntityOwner::SetSelected() methods to determine if corresponding entity is selected.
They replace functionality of SelectMgr_EntityOwner::State() methods that are deprecated now.
2) AIS_InteractiveContext::ToHilightSelected() and AIS_InteractiveContext::SetToHilightSelected() is to be used to enable highlighting of selected objects.
3) By default selected objects are highlighted (new behavior)
4) Add ViewerTest_ViewerCommands: vhighlightselected command to enable/disable 'highlight selected objects' mode.
5) AIS_LocalContext, AIS_InteractiveContext : style changes in Select and ShiftSelect methods.
6) Add test cases /bugs/vis bug23649_1 and /bugs/vis bug23649_2 to test highlighting of selected objects in local context.
7) Add test cases /bugs/vis bug23649_3 and /bugs/vis bug23649_4 to test highlighting of selected objects in neutral point.
Updated test case
camera movement
AutoZFit operation now may be applied on Visual3d_View level.
Visual3d_View tracks Graphic3d_Structure updates and call AutoZFit within
Visual3d_View::Redraw if necessary.
In order to get AutoZFit functionality on Visual3d_View level ZfitAll
method moved from V3d_View into Graphic3d_Camera. AutoZFit method and
AutoZFitMode flag now part of Visual3d_View.
Test case for issue CR24996
Drop Graphic3d_GraphicDriver::Begin() and ::End() methods.
Initialization is performed within driver constructor.
Drop dummy argument for Graphic3d_GraphicDriver constructor with library name.
Display connection now should be set instead
Drop Graphic3d::InitGraphicDriver() function and Graphic3d.hxx header.
Application code should explicitly link against TKOpenGl toolkit and instantiate OpenGl_GraphicDriver class.
Drop MetaGraphicDriverFactory implementation within TKOpenGl.
Implement SAT intersection tests and frustum culling algorithm using BVH trees.
New Draw command vfrustumculling to manage frustum culling.
Add test cases bugs/vis/bug24307_1 and bugs/vis/bug24307_2.
Remove CALL_DEF_BOUNDBOX and CALL_DEF_BOUNDS.
Remove ViewerTest_Tool, keep only one unified way to create viewer using ViewerTest - ViewerTest::ViewerInit().
Remove test case bugs/vis/buc60851 and command BUC60851.
Added test case bugs/xde/bug24430
From now on, the panning behavior of V3d_View completely corresponds to equal operations with camera. There is no more confusing "Center" property and "ProjectionShift" which were used to introduce composite panning, while respecting view referential points: At, Eye unchanged. The V3d_View::FitAll approach has been rewritten to do "fit all" geometrically, operating with frustum, to make it working for both orthographic and perspective projections.
1) Getting rid of ProjectionShift and Center property:
- Removed ProjectionShift property of Graphic3d_Camera.
- Removed confusing Center property of V3d_View (related to projection shift).
- Removed redundant code related to the Center property of V3d_View.
- Removed WindowLimit method of Graphic3d_Camera - no more used.
2) Improvements of fit all and selector:
- Improved FitAll operation of V3d_View and reused it in NIS_View - the perspective projection is now handled correctly.
- Revised code of Select3D_Projector class - can be defined with any given projection and model-view matrices.
- Modified StdSelect_ViewerSelector3d and ensured that panning, zooming and going into the view do not lead to unwanted re-projection of sensitives. The handling of perspective selection is revised.
- Take into account graphical boundaries of infinite structure on ZFitAll.
3) Improvements of camera:
- Introduced new z range scale parameter for V3d_View::AutoZFit. See, V3d_View::AutoZFitMode.
- Allow negative ZNear, ZFar for orthographic camera to avoid clipping of viewed model.
- Moved camera ZNear, ZFar validity checks to V3d_View level.
- Use more meaningful Standard_ShortReal relative precision for ZNear, ZFar ranges computed by ZFitAll.
- Use Standard_Real type for camera projection and orientation matrices.
- Extended camera to generate both Standard_Real and Standard_ShortReal transformation matrices using the same matrix evaluation methods and converted input parameters.
Correcting picking tests for perspective view
Modify v3d face test cases for 1px changes in face picking
Modified test cases for new arguments of vviewparams DRAWEXE command
License statement text corrected; compiler warnings caused by Bison 2.41 disabled for MSVC; a few other compiler warnings on 54-bit Windows eliminated by appropriate type cast
Wrong license statements corrected in several files.
Copyright and license statements added in XSD and GLSL files.
Copyright year updated in some files.
Obsolete documentation files removed from DrawResources.
- Added test cases to check label and arrows positioning of AIS length, angle, radius, diameter dimensions;
- Added new arguments to "vdim" command to modify "flyout", "arrow orientation", "label position" properties;
- Corrected bug: duplication of text label of linear dimensions for the horizontal-centered text.
- Rename and revise argument interface of "vdimension" (vdim) command.
- Correct test cases for new command name and arguments style.
corrected test cases - check with testdiff instead of "checkcolor"
Some corrections; test cases were added; coding standards in MFC samples & presentations
Request stencil buffer for Linux.
correct test cases; correct compilation errors
compilation warnings (gcc/Linux)
The purpose of this functionality is to bring a basic ray-tracing solution to existing OCCT visualization toolkit (TKOpenGL).
Currently ray-tracing visualization core supports sharp shadows, specular reflections, transparency and adaptive anti-aliasing.
However, the basis for all ray-tracing algorithms is versatile, allowing you to add new ray-tracing features easily (such as ambient occlusion).
All ray-tracing computations are performed on the GPU using OpenCL framework, allowing real-time rendering performance.
It is important to note, that real-time ray-tracing is possible using high-performance GPUs with support of OpenCL 1.1 and higher (such as NVIDIA GeForce 660 or ATI/AMD Radeon 7850).
When using low-end GPUs (such as NVIDIA GeForce 640) the ray-tracing performance may slow down significantly.
Therefore, even with NVIDIA GeForce 640 you can render scenes with the millions of triangles. The support of OpenCL-enabled CPUs and integrated graphics cards is not guaranteed.
Introduce new class Font_BRepFont for conversion of font glyph in vector format into BRep representation.
New text2brep Draw Harness command.
bottle.tcl - draw text on the bottle side using new functionality.
ViewerTest - process Delete key in 3D-Viewer to delete selected presentations.
Font_FontMgr::FindFont - return correct font when font alias and not default aspect is requested.
bottle.tcl - use prism instead of pipe
TKViewerTest - add required FreeType dependency
verase - display the list of erase objects
TKViewerTest - add required FreeType dependency for projects generation
Fixed graphic structure recompute after closing view.
Removed collector and all corresponding logic and methods from AIS_InteractiveContext.
Method AIS_InteractiveContext::Erase() now hide object from viewer without deleting resources.
Erased objects now properly recomputed after closing view.
Samples update
Removed useless method AIS_InteractiveContext::EraseMode()
Documentation update
Warnings fix
Regressions fix
Add pre-rendered images for custom markers.
OpenGl_Window - drop overcomplicated find_pixel_format() function
OpenGl_Caps - add option to force software OpenGL imlementation (MS or Apple)
Remove TODO from test case
Add grayscale custom marker to the test
Correct color bitness in attributes list
Graphical clipping:
- Use "Graphic3d_ClipPlane" to defined clipping for PrsMgr_PresentableObject (local clipping), for V3d_View (global clipping).
Get rid of old implementations:
- Remove Visual3d_ClipPlane.
- Port V3d_Plane to Graphic3d_ClipPlane core.
Selection Sensitives:
- Port "Matches" method to add full set of arguments (SelectBasics_PickArgs), including min-max depth coming from selector.
- Get rid of transient data for pair Matches -> ComputeDepth.
- Extend SelectMgr_ViewerSelector::LoadResult to work with local clipping, add virtual callbacks to compute globa/local depth clipping for picking.
Capping rendering algorithm:
- Recursive rendering algorithm for OpenGl_Groups.
- Introduced Rendering filter for groups.
Clipping plane management in TKOpenGl:
- Added OpenGl_ClippingState to OpenGl_Context.
DRAWEXE commands:
- Ported "vclipplane" command for new approach.
- Added "vsettexturemode" command for changing texture details in views (enable / disable textures).
Correct DownCast syntax (compilation error)
Fix new compiler warnings
tests/bugs/vis/bug22906 migrated to the new vclipplane syntax
List of resolved warnings:
c4063: Aspect.cdl; TObj_Application.cxx; PCDM.cdl; OpenGl_Workspace_5.cxx;
c4100: XDEDRAW.cxx; ViewerTest_ViewerCommands.cxx; TopOpeBRep_FacesFiller_1.cxx; TopClass_Classifier3d.gxx; TDataStd_ReferenceArray.cxx; QABugs_19.cxx; IntPatch_ImpImpIntersection_5.gxx; HLRTopoBRep_DSFiller.cxx; HLRBRep_Data.lxx; DPrsStd_AISPresentationCommands.cxx; BRepMesh_Delaun.cxx;
c4127: BOPTools_AlgoTools2D.cxx; MAT_Mat.gxx; GeomFill_SweepSectionGenerator.cxx; BRepMesh_Delaun.cxx;
c4189: IntCurveSurface_Inter.gxx; IGESToBRep_BRepEntity.cxx; BRepMesh_Delaun.cxx; BRepAlgo_Loop.cxx; IntStart_SearchOnBoundaries_1.gxx;
c4190: Plugin_Macro.hxx;
c4389: Visual3d_View.cxx; TopOpeBRep/TopOpeBRep_vpr.cxx; TDataStd_BooleanArray.cxx; IntPatch_ALine.cxx;
c4701: BRepAlgo.cxx;
c4702: MNaming_NamingRetrievalDriver_1.cxx; MNaming_NamingRetrievalDriver_2.cxx; BRepClass3d_SolidExplorer.cxx;
c4706: TestTopOpe_BOOP.cxx;
Additional fixes:
- old-style declarations of C functions in IGES and STEP parsers
- clean-up of debug code, fixes for building in Debug mode
- in BRepFill_TrimShellCorner.cxx, lines 878-9, wrong use of assignment instead of comparison fixed
- fix for Plugin_Macro reverted; warning 4190 disabled instead
- in IntPatch_ALine.cxx, line 520, wrong comparison of boolean with index fixed
- in InterfaceGraphic_Visual3d.hxx, field IsCustomMatrix made boolean
- in TopOpeBRepBuild_ShapeSet, obsolete (unused) methods removed
Introduce Point Sprites usage.
Graphic3d_Group - drop Marker(),MarkerSet() methods - markers should be drawn using AddPrimitiveArray.
Added new Draw Harness commands vcaps, vmarkerstest.
Removing pPotentially uninitialized local variable
Got rid of most of warnings C4701: Potentially uninitialized local variable
Removed redundant variable definitions.
Refactored a part of AppParCurves_ResolConstraint CTOR.
Replaced 0. to Precision::Confusion for tolerance vars;
Changed values for min and max parameter vars;
Got rid of redundant variables' initialization.
Custom string handling code enabled by OptJr macro removed from implementation of strings in TCollection and elsewhere.
Functions from string.h are used instead of macros from Standard_String.hxx
File Standard_String.hxx and methods ISSIMILAR and HASHCODE of TCollection*String classes are removed (to be replaced by strcasecmp).
Functions HashCode for strings reimplemented using DJB2 algorithm for C strings and SDBM algorithm for extended strings.
Adding test cases and draw-command for issue CR11758
Fix misprint added with previous integration
Fix misprint in the test command.
Remove compilation warnings (Linux).
Avoid compiler warning "dereferencing type-punned pointer will break strict-aliasing rules" on Linux