Free Electron
WayPathOp.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __ironworks_WayPathOp_h__
8 #define __ironworks_WayPathOp_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /**************************************************************************//**
16  @brief Operator to connect triangle locators
17 
18  @ingroup ironworks
19 *//***************************************************************************/
20 class FE_DL_EXPORT WayPathOp:
21  public OperatorSurfaceCommon,
22  public Initialize<WayPathOp>
23 {
24  public:
25 
26  WayPathOp(void):
27  m_brushed(FALSE),
28  m_totalLength(0.0) {}
29 
30 virtual ~WayPathOp(void) {}
31 
32  void initialize(void);
33 
34  //* As HandlerI
35 virtual void handle(Record& a_rSignal);
36 
37  private:
38 
39  void matchLengths(const SpatialVector a_center,
40  SpatialVector& a_rArm1,SpatialVector& a_rArm2);
41 
42  SpatialVector envelopePoint(const I32 a_primitiveIndex,
43  const I32 a_primitiveCount,
44  const SpatialVector a_inputArray[],
45  const Real a_envelopeArray[]);
46 
47  SpatialVector nearPoint(const SpatialVector& a_rPrevious,
48  const SpatialVector& a_rNext,
49  const SpatialVector& a_rFrom);
50 
51  WindowEvent m_event;
52  sp<DrawMode> m_spSolid;
53  sp<DrawMode> m_spOverlay;
54 
55  BWORD m_brushed;
56 
57  Real m_totalLength;
58 };
59 
60 } /* namespace ext */
61 } /* namespace fe */
62 
63 #endif /* __ironworks_WayPathOp_h__ */
64 
kernel
Definition: namespace.dox:3
Per-class participation in the Initialized <> mechanism.
Definition: Initialized.h:117
Generalized windowing event.
Definition: WindowEvent.h:43
Partial Generic SurfaceI Implemention.
Definition: OperatorSurfaceCommon.h:20
Reference to an instance of a Layout.
Definition: RecordSB.h:35
Operator to connect triangle locators.
Definition: WayPathOp.h:20