mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-06-20 11:54:07 +03:00
Added new class AIS_ViewCube implementing interactive cube displaying orientation of the main axes of the model space in the viewer. Each side, edge, or corner of the cube corresponds to particular orientation of the camera, and the class provides methods to move the camera to corresponding position (with animation if needed). AIS_InteractiveContext::LastActiveView(), added new property returning the last View processed by MoveTo() event. AIS_InteractiveContext::BoundingBoxOfSelection(), added method returning bounding box of selected objects. SelectMgr_EntityOwner::HandleMouseClick(), added new callback for handling mouse clicks by owner itself without automatic highlighting and clearing previous selection. Called by AIS_InteractiveContext::Select() method. AIS_ViewController::ViewAnimation() has been extened with camera animation propery, which can be bound to AIS_ViewCube for smooth embedding into event loop. Prs3d_ToolDisk has been extended with parameters specifying angle range. Graphic3d_MaterialAspect now initializes all coefficients to 1.0 when Graphic3d_NOM_UserDefined is passed to class constructor. AIS_AnimationCamera::update() now sets the end camera position if animation duration is 0. Prs3d_DatumAspect, added missing setters. New command vviewcube has been added.
67 lines
2.2 KiB
C++
67 lines
2.2 KiB
C++
// Created by: Anastasia BORISOVA
|
|
// Copyright (c) 2016 OPEN CASCADE SAS
|
|
//
|
|
// This file is part of Open CASCADE Technology software library.
|
|
//
|
|
// This library is free software; you can redistribute it and/or modify it under
|
|
// the terms of the GNU Lesser General Public License version 2.1 as published
|
|
// by the Free Software Foundation, with special exception defined in the file
|
|
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
// distribution for complete text of the license and disclaimer of any warranty.
|
|
//
|
|
// Alternatively, this file may be used under the terms of Open CASCADE
|
|
// commercial license or contractual agreement.
|
|
|
|
#ifndef _AIS_AnimationCamera_HeaderFile
|
|
#define _AIS_AnimationCamera_HeaderFile
|
|
|
|
#include <AIS_Animation.hxx>
|
|
|
|
class Graphic3d_Camera;
|
|
class V3d_View;
|
|
|
|
//! Camera animation.
|
|
class AIS_AnimationCamera : public AIS_Animation
|
|
{
|
|
DEFINE_STANDARD_RTTIEXT(AIS_AnimationCamera, AIS_Animation)
|
|
public:
|
|
|
|
//! Main constructor.
|
|
Standard_EXPORT AIS_AnimationCamera (const TCollection_AsciiString& theAnimationName,
|
|
const Handle(V3d_View)& theView);
|
|
|
|
//! Return the target view.
|
|
const Handle(V3d_View)& View() const { return myView; }
|
|
|
|
//! Set target view.
|
|
void SetView (const Handle(V3d_View)& theView) { myView = theView; }
|
|
|
|
//! Return camera start position.
|
|
const Handle(Graphic3d_Camera)& CameraStart() const { return myCamStart; }
|
|
|
|
//! Define camera start position.
|
|
void SetCameraStart (const Handle(Graphic3d_Camera)& theCameraStart) { myCamStart = theCameraStart; }
|
|
|
|
//! Return camera end position.
|
|
const Handle(Graphic3d_Camera)& CameraEnd() const { return myCamEnd; }
|
|
|
|
//! Define camera end position.
|
|
void SetCameraEnd (const Handle(Graphic3d_Camera)& theCameraEnd) { myCamEnd = theCameraEnd; }
|
|
|
|
protected:
|
|
|
|
//! Update the progress.
|
|
Standard_EXPORT virtual void update (const AIS_AnimationProgress& theProgress) Standard_OVERRIDE;
|
|
|
|
protected:
|
|
|
|
Handle(V3d_View) myView; //!< view to setup camera
|
|
Handle(Graphic3d_Camera) myCamStart; //!< starting camera position
|
|
Handle(Graphic3d_Camera) myCamEnd; //!< end camera position
|
|
|
|
};
|
|
|
|
DEFINE_STANDARD_HANDLE(AIS_AnimationCamera, AIS_Animation)
|
|
|
|
#endif // _AIS_AnimationCamera_HeaderFile
|