HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GEO_PointSlider.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: GEO_PointSlider.h (GEO Library, C++)
7  *
8  * COMMENTS: Virtual base classes for managing the data structures for
9  * sliding points across a subset of primitives.
10  */
11 
12 #ifndef __GEO_PointSlider_h__
13 #define __GEO_PointSlider_h__
14 
15 #include "GEO_API.h"
16 
17 #include <GA/GA_Types.h>
18 #include <UT/UT_VectorTypes.h>
19 
20 class GA_PrimitiveGroup;
21 
23 {
24 public:
26  virtual ~GEO_PointSlider();
27 
28  virtual bool project(GA_Offset point,
29  const GA_OffsetArray *referencing_prims,
30  const UT_Vector3 &start_pos,
31  const UT_Vector3 &target_pos,
32  UT_Vector3 &projected_pos) const = 0;
33 
34  virtual bool usesPrimitivesReferencingPoint() const { return false; }
35 };
36 
38 {
39 public:
41  virtual ~GEO_PointSliderCache();
42 
43  virtual GEO_PointSlider *allocSlider(
44  const GA_PrimitiveGroup *group) = 0;
45  virtual void releaseSlider(
46  GEO_PointSlider *slider) = 0;
47 };
48 
49 #endif // __GEO_PointSlider_h__
50 
GA_Size GA_Offset
Definition: GA_Types.h:646
UT_Vector2T< T > project(const UT_Vector2T< T > &u, const UT_Vector2T< T > &v)
The orthogonal projection of a vector u onto a vector v.
Definition: UT_Vector2.h:700
#define GEO_API
Definition: GEO_API.h:14
virtual bool usesPrimitivesReferencingPoint() const