Transform Snap: initial snap context refactor
This introduces a snap-context that can be re-used for casting rays into the scene (by operators such as walk-mode, ruler and transform code). This can be used to cache data between calls too.
This commit is contained in:
@@ -101,6 +101,11 @@ typedef struct TransSnap {
|
||||
* where the smallest absolute value defines whats closest.
|
||||
*/
|
||||
float (*distance)(struct TransInfo *, const float p1[3], const float p2[3]);
|
||||
|
||||
/**
|
||||
* Re-usable snap context data.
|
||||
*/
|
||||
SnapObjectContext *object_context;
|
||||
} TransSnap;
|
||||
|
||||
typedef struct TransCon {
|
||||
@@ -677,6 +682,7 @@ bool activeSnap(TransInfo *t);
|
||||
bool validSnap(TransInfo *t);
|
||||
|
||||
void initSnapping(struct TransInfo *t, struct wmOperator *op);
|
||||
void freeSnapping(struct TransInfo *t);
|
||||
void applyProject(TransInfo *t);
|
||||
void applyGridAbsolute(TransInfo *t);
|
||||
void applySnapping(TransInfo *t, float *vec);
|
||||
@@ -786,4 +792,8 @@ void projectVertSlideData(TransInfo *t, bool is_final);
|
||||
/* TODO. transform_queries.c */
|
||||
bool checkUseAxisMatrix(TransInfo *t);
|
||||
|
||||
#define TRANSFORM_DIST_MAX_PX 1000.0f
|
||||
#define TRANSFORM_SNAP_MAX_PX 100.0f
|
||||
#define TRANSFORM_DIST_INVALID -FLT_MAX
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user