# Visualization
TKV3d
AIS

# AIS_SymmetricRelation Class Reference

A framework to display constraints of symmetricity
between two or more datum Interactive Objects.
A plane serves as the axis of symmetry between the
shapes of which the datums are parts.
.

`#include <AIS_SymmetricRelation.hxx>`

Inheritance diagram for AIS_SymmetricRelation:

[legend]

## Public Member Functions

Standard_EXPORT | AIS_SymmetricRelation (const TopoDS_Shape &aSymmTool, const TopoDS_Shape &FirstShape, const TopoDS_Shape &SecondShape, const Handle(Geom_Plane)&aPlane)

Constructs an object to display constraints of symmetricity.
This object is defined by a tool aSymmTool, a first
shape FirstShape, a second shape SecondShape, and a plane aPlane.
aPlane serves as the axis of symmetry.
aSymmTool is the shape composed of FirstShape
SecondShape and aPlane. It may be queried and
edited using the functions GetTool and SetTool.
The two shapes are typically two edges, two vertices or two points.
.

virtual Standard_Boolean | IsMovable () const
| Returns true if the symmetric constraint display is movable. .
void | SetTool (const TopoDS_Shape &aSymmetricTool)
| Sets the tool aSymmetricTool composed of a first shape, a second shape, and a plane. This tool is initially created at construction time. .
const TopoDS_Shape & | GetTool () const
| Returns the tool composed of a first shape, a second shape, and a plane. This tool is created at construction time. .
virtual Standard_EXPORT void | Compute (const Handle(Prs3d_Projector)&aProjector, const Handle(Geom_Transformation)&aTrsf, const Handle(Prs3d_Presentation)&aPresentation)
| computes the presentation according to a point of view given by <aprojector>. To be Used when the associated degenerated Presentations have been transformed by <atrsf> which is not a Pure Translation. The HLR Prs can't be deducted automatically WARNING :<atrsf> must be applied to the object to display before computation !!!
Standard_EXPORT const | Handle (Standard_Type)&DynamicType() const

## Private Member Functions

Standard_EXPORT void | Compute (const Handle(PrsMgr_PresentationManager3d)&aPresentationManager, const Handle(Prs3d_Presentation)&aPresentation, const Standard_Integer aMode=0)
| Calculates the 3D view aPresentation and its updates. The latter are managed by aPresentationManager. aPresentableObject has the display mode aMode; this has the default value of 0, that is, the wireframe display mode. .
Standard_EXPORT void | Compute (const Handle(Prs3d_Projector)&aProjector, const Handle(Prs3d_Presentation)&aPresentation)

Calculates the 3D view aPresentation and its
updates. The latter are managed by
aPresentationManager. Each of the views in the
viewer and every modification such as rotation, for
example, entails recalculation.
It must be redefined to implement hidden line removal
for the object. The user never calls this method
himself. This is done via the InteractiveContext object
and is dependent on the point of view from which the
object is displayed.
.

Standard_EXPORT void | Compute (const Handle(PrsMgr_PresentationManager2d)&aPresentationManager, const Handle(Graphic2d_GraphicObject)&aPresentation, const Standard_Integer aMode=0)
| Calculates the 2D view aPresentation and its updates. The latter are managed by aPresentationManager. aPresentableObject has the display mode aMode; this has the default value of 0, that is, the wireframe display mode. Note that this syntax is not used in AIS as that package only concerns 3D display. .
Standard_EXPORT void | ComputeSelection (const Handle(SelectMgr_Selection)&aSelection, const Standard_Integer aMode)

Recovers and calculates any sensitive primitive,
aSelection, available in Shape mode, specified by
aMode. As a rule, these are sensitive faces.
This method is defined as virtual. This enables you to
implement it in the creation of a new class of AIS
Interactive Object. You need to do this and in so
doing, redefine this method, if you create a class
which enriches the list of signatures and types.
.

Standard_EXPORT void | ComputeTwoFacesSymmetric (const Handle(Prs3d_Presentation)&aprs)
Standard_EXPORT void | ComputeTwoEdgesSymmetric (const Handle(Prs3d_Presentation)&aprs)
Standard_EXPORT void | ComputeTwoVerticesSymmetric (const Handle(Prs3d_Presentation)&aprs)

## Private Attributes

TopoDS_Shape | myTool
gp_Pnt | myFAttach
gp_Pnt | mySAttach
gp_Dir | myFDirAttach
gp_Dir | myAxisDirAttach

## Constructor & Destructor Documentation

Standard_EXPORT AIS_SymmetricRelation::AIS_SymmetricRelation | ( | const TopoDS_Shape & | aSymmTool,
|  | const TopoDS_Shape & | FirstShape,
|  | const TopoDS_Shape & | SecondShape,
|  | const Handle(Geom_Plane)& | aPlane
| ) |

## Member Function Documentation

Standard_EXPORT void AIS_SymmetricRelation::Compute | ( | const Handle(PrsMgr_PresentationManager2d)& | aPresentationManager,
|  | const Handle(Graphic2d_GraphicObject)& | aPresentation,
|  | const Standard_Integer | aMode = `0`
| ) | `[private, virtual]`

| Reimplemented from PrsMgr_PresentableObject.

Standard_EXPORT void AIS_SymmetricRelation::Compute | ( | const Handle(Prs3d_Projector)& | aProjector,
|  | const Handle(Prs3d_Presentation)& | aPresentation
| ) | `[private, virtual]`

| Reimplemented from PrsMgr_PresentableObject.

Standard_EXPORT void AIS_SymmetricRelation::Compute | ( | const Handle(PrsMgr_PresentationManager3d)& | aPresentationManager,
|  | const Handle(Prs3d_Presentation)& | aPresentation,
|  | const Standard_Integer | aMode = `0`
| ) | `[private, virtual]`

| Reimplemented from PrsMgr_PresentableObject.

virtual Standard_EXPORT void AIS_SymmetricRelation::Compute | ( | const Handle(Prs3d_Projector)& | aProjector,
|  | const Handle(Geom_Transformation)& | aTrsf,
|  | const Handle(Prs3d_Presentation)& | aPresentation
| ) | `[virtual]`

| Reimplemented from PrsMgr_PresentableObject.

Standard_EXPORT void AIS_SymmetricRelation::ComputeSelection | ( | const Handle(SelectMgr_Selection)& | aSelection,
|  | const Standard_Integer | aMode
| ) | `[private, virtual]`

| Implements SelectMgr_SelectableObject.

Standard_EXPORT void AIS_SymmetricRelation::ComputeTwoEdgesSymmetric | ( | const Handle(Prs3d_Presentation)& | aprs | ) | `[private]`

Standard_EXPORT void AIS_SymmetricRelation::ComputeTwoFacesSymmetric | ( | const Handle(Prs3d_Presentation)& | aprs | ) | `[private]`

Standard_EXPORT void AIS_SymmetricRelation::ComputeTwoVerticesSymmetric | ( | const Handle(Prs3d_Presentation)& | aprs | ) | `[private]`

const TopoDS_Shape & AIS_SymmetricRelation::GetTool | ( |  | ) | const`[inline]`

Standard_EXPORT const AIS_SymmetricRelation::Handle | ( | Standard_Type |  | ) | const

| Reimplemented from AIS_Relation.

Standard_Boolean AIS_SymmetricRelation::IsMovable | ( |  | ) | const`[inline, virtual]`

| Reimplemented from AIS_Relation.

void AIS_SymmetricRelation::SetTool | ( | const TopoDS_Shape & | aSymmetricTool | ) | `[inline]`

## Field Documentation

gp_Dir AIS_SymmetricRelation::myAxisDirAttach `[private]`

gp_Pnt AIS_SymmetricRelation::myFAttach `[private]`

gp_Dir AIS_SymmetricRelation::myFDirAttach `[private]`

gp_Pnt AIS_SymmetricRelation::mySAttach `[private]`

TopoDS_Shape AIS_SymmetricRelation::myTool `[private]`

The documentation for this class was generated from the following files:

- AIS_SymmetricRelation.hxx
- AIS_SymmetricRelation.lxx