All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added
TextEdit
to handlename
change. - Added
DefaultLayout
to handle gernerallayout
setting to minimal. - Added
ColorDialog
to manage color dialog. - Added
SettingLayout
to manage complex layout with config input. - Added
robot.py
example. - Added
ortho
option to view. - Added
vertical_align
andhorizontal_align
options toTag
. - Added example files in the documentation.
- Fixed
GroupObject
pointcolor
not found error with implimentexclude_type_list
. - Fixed
Tag
inconsistent height issue. - Dynamically adjust camera pan delta based on distacne.
- Added
list
to accepted types forScene.add
. - Added
list[float]
to accepted types forCamera.position
andCamera.target
. - Added
unit
toViewer
andConfig
. - Added
bounding_box
and_update_bounding_box
toBufferObject
.
- Fixed
opacity
bug withBufferObject
. - Updated
SceneForm
to avoid completely reload when scene objects not changed. - Updated callback to
SceneTree
. - Updated
ObjectSetting
andCameraSetting
to support setting from config. - Updated
Slider
to be able change value withTextEdit
- Added
scripts/treeform.py
example.
- Fixed issue of
SceneForm
collapsing when new object is selected. - Toggling
show
of Group or objects will hide/show all its descendents. - Moved assets related files to
assets
folder. - Fixed a bug to allow changing
Viewer.renderer.view
beforeViewer.show()
. - Fixed a bug of grid not showing while the scene is empty.
- Removed
is_locked
fromcompas_viewer.scene.ViewerSceneObject
.
- Fixed missing shader files.
- Added
compas_viewer.components.dialog
component which handle camera setting popup window. - Added
compas_viewer.components.combo_box
component. - Added
ViewComboBox
component handle viewmode change. - Added
compas_viewer.objects.BufferGeometry
andcompas_viewer.objects.BufferObject
. - Added
clear_scene
action. - Added
compas_viewer.components.SceneForm
. - Added
callback
forcompas_viewer.components.TreeForm
. - Added
compas_viewer.scene.ShapeObject
. - Added
compas_viewer.commands.capture_view
and corresponding command. - Added default colors to
MeshObject
. - Added default colors to
GeometryObject
. - Added
object_info_cmd
forcompas_viewer.commends
. - Added
gridmode
toGridObject
. - Added
checkbox
tocompas_viewer.components.SceneForm
.
- Fixed
action
bug. - Updated
compas_viewer.scene.ViewerScene
to support save/load and switching. - Changed
is_visible
parameters toshow
incompas_viewer.scene.ViewerSceneObject
classes. - Changed
GridObject
to draw direcly inRender
. - Fixed
CameraSettingsDialog
update current position bug. - update
slider
component. - Implemented downsampling for window selection to improve performance.
- Made
TreeForm
interactive. - Fixed
load_scene
action bug. - Changed base of shapes to
compas_viewer.scene.ShapeObject
. - Changed
FrameObject
to something with just 3 axes. - Restructured
SceneObjects
to accepctitem
as kwargs. - Fixed
compas_viewer.components.slider
step attribute. - Fixed
renderer.view
distorted init. - Fixed
tagobject
by adding back FreeSans.ttf.
- Added
@viewer.on
. - Added
SideDock
.
- Added
button
,double_edit
andtreeform
components.
- Added
PointcloudObject
. - Added
compas_viewer.base.Base
to access viewer singleton. - Added
compas_viewer.singleton.SingletonMeta
andcompas_viewer.singleton.Singleton
. - Added
compas_viewer.scene.Group
andcompas_viewer.scene.GroupObject
. - Added
PolyhedronObject
. - Added
compas_viewer.scene.NurbsCurveObject
.
- Changed
NurbsSurfaceObject
to use tessellation function ofOCCBrep
, show boundary curves instead of control curves. - Renamed all lazy setup functions to
lazy_init
. - Fixed camera initialization issue.
- Fixed and brought back
CollectionObject
. - Updated objects color settings to align to
pointcolor
,linecolor
,facecolor
. - Updated objects visibility settings to align to
show_points
,show_lines
,show_faces
. - Updated objects drawing settings to align to
linewidth
,pointsize
. - Updated
PolygonObject
show faces.
- removed
PyOpenGL-accelerate
from requirements.txt
- Added singletone
compas_viewer.viewer
- Added singletone
compas_viewer.config
- Added
compas_viewer.ui.ui
andcompas_viewer.components
.
- Changed
compas_viewer.layout
tocompas_viewer.ui.ui
.
- Removed old version of
compas_viewer.viewer
.
- Added non-python files to the release.
- Added
*args
in theViewer.add
method, resolve #85. - Added
Transformation
andVisualization
sections for thePropertyform
. - Added
Propertyform
and its example in the documentation. - Added example
layout/tree_view
. - Added functionality of multiple widgets in main viewport.
- Added example
object/scale.py
. - Added
RobotModelObject
and its example in the documentation. - Added support to pinch gesture for zooming on touch pads.
- Pin the
PySide6
version to6.6.1
. - Auto set the camera scale when
zoom_extend
is called. - Updated the
Tag
example. - Updated the
RobotModelObject
example. - Update examples in the documentation.
- Renamed
surfaces
intoviewmesh
in everyViewerGeometryObject
. - Renamed
scene.json
toviewer.json
andscene_config
toviewer_config
. - Unify color naming. variables that control the colors of geometries are
surfacecolor
,linecolor
,pointcolor
, yet variables that control the colors of meshes arefacecolor
,edgecolor
,vertexcolor
. - Added
ViewerGeometryObject
as the abstract class for all the geometry objects. Other specific geometry objects are inherited from this class. - Changed
DataType
intoShaderDataType
. Resolve to #46. - Added
ViewerScene
as an attribute of theViewer
class. resolve #28. - Bug fix of #73.
- Improved argument passing mechanism in the
Slider
class. Close #76. - Documentation images and code correction.
- Improved typing hints of
CollectionObject
. - Changed to the point object is
show_points = True
by default. Refer to #73. - Changed from
super(__t, __obj)
tosuper()
as the new version. - Temporarily removed
rgba
which is causing blank screen for macos. - Re-enabled
rgba
support by switching tovec4
for color attributes in shader. - Fixed the bug of missing
item
parameter in theViewer.add
method. - Fixed tag text spacing and alignment issue.
- Fixed mouse selection flickering issue.
- Fixed the issue of zoom on mac.
- Removed
utilities
folder.
- Fixed the bug to include
data
folder in the package.
- Added examples in the doc.
- Added
Treeform
. - Added basic layout elements:
MenubarLayout
,ToolbarLayout
,StatusbarLayout
,SidedockLayout
. - Added Actions: delete_selected, camera_info, selection_info.
- Added basic buildup of
Layout
's configurations. The .json template and the configuration classes. Layout
class basic buildup:Layout
,ViewportLayout
,WindowLayout
.- Added terminal activation of the viewer.
- Added
PyOpenGL_accelerate
dependency. - Added repo images.
- Added
installation
documentation. - Added documentations: index, api, etc. Mockups style is improved.
- Added
DeleteSelected
action class. - Added
ShaderDataType
as the data type template for generating the buffer. - Added
NetworkObject
for the scene objects. - Added
compas_viewer.scene.ViewerSceneObject.LINEWIDTH_SELECTION_INCREMENTAL
to enhance line width for selection only. - Added
BRepObject
,CapsuleObject
,ConeObject
,CylinderObject
,PlaneObject
,SphereObject
,EllipseObject
,TorusObject
,PolygonObject
,PolylineObject
,BoxObject
. The geometric resolution is handled by thecompas_viewer.scene.ViewerSceneObject.LINEARDEFLECTION
. - Added
VectorObject
for the scene objects with mesh-based display for better visual effect. - Added "instance" render mode for debugging and geometric analysis.
- Added contents in the
README.md
. - Added full support for selection: drag_selection, drag_deselection, multiselect, deselect, select.
- Added
SelectAll
action class. - Added
LookAt
action class. - Added
compas_viewer.Viewer.add_action
for adding actions to the viewer. - Added
Signal
structure for theAction
class. - Added complete key, mouse and modifier support from
PySide6
. - Added
ZoomSelected
andGLInfo
classes as template action classes. - Added
Action
class. - Added
Controller
class for the controller. - Added
Grid
andGridObject
for the scene objects. - Added
TagObject
,LineObject
andPointObject
for the scene objects. - Added test files for configurations.
- Added doc build, and many doc-building syntax fixes.
- Added
scene.json
for storing the scene configurations. Mostly store the default appearance features of the objects. compas
recognizescompas_viewer
context, and map the accordingcompas_viewer
objects to thecompas
objects.- Added two main scene objects:
ViewerSceneObject
andMeshObject
.BufferObject
no longer exists but replaced byViewerSceneObject
. - Added
add
function in theViewer
class for adding objects to the scene, which is also the entry for imputing user-defined attributes. - Added and formatted
Shader
andCamera
. - Added a
RenderConfig
for configuring the Render object. - Added the
shaders
and theShader
class in the shader folder. - Created the
Camera
,metrics
andgl
functions and classes (most copied from the view2). - Adjustment of the
ControllerConfig
and `ViewerConfig``. - Adjustment of the
Viewer
. - Basic
Viewer
buildup with the widgets. - Configurations:
controller_config
andviewer_config
- Code and File structure diagrams.
- Added
NetworkObject
.
- Fixed #64.
- Patch github actions.
- Fix #63.
- Updated the configuration architecture.
- Updated the
delete_selected
action. - Renamed
NetworkObject
toGraphObject
. See commit: https://github.com/compas-dev/compas/commit/7f7098c11a1a4c3c8c0b527c8f610d10adbba1a6#diff-4e906e478c68aaee46648b7323ed68106084e647748b4e0bcb5fd440c3e162fb. - Updated the
Slider
. - Documentation improved.
Timer
is moved to utilities.- Updated
BRepObject
to connect the latest OCC package, close #48. - Fixed opacity bug in shaded mode.
- Fixed main page link.
- Fixed issue #17 and avoid using
vertex_xyz
. - Update the dependency of
compas
. - The
Index
page. - Typing hints improved, now
compas_viewer
only support Python 3.9+. - Introduce decorator @lru_cache() to reduce duplicate calculations.
- Refactored the
Selector
and the instance_map structure, the main frame rate is higher and selection action is faster. - Fixed the bug of the
Selector
, drag selection is now more accurate. - More performative instance map and QObject-based selection architecture.
- Naming of the keys, mouses, and modifiers are changed. The key string which is the same as what it was called in the PySide6.QtCore.Qt, with lowercases and with prefix&underscores removed.
Grid
object inherits fromcompas.data.Data
.- Update the compatibility of the
ViewerSceneObject
to the coreSceneObject
. - Refactored the
ControllerConfig
. - Fix Qt package of
PySide6
. - Moved
gl
fromrender
folder to theutilities
folder. - All color representations are now in
compas.colors.Color
. - Reduce the
numpy.array
representation. Mostly uselist
instead for clarity. - Comments improved and better type hints.
- Removed
self.objects
from theRender
class.` - Replace the
Grid
andGridObject
but byFrameObject
, which also hooks theFrame
in compas.