692 SO_KIT_CATALOG_ENTRY_HEADER(overallStyle);
695 SO_KIT_CATALOG_ENTRY_HEADER(surroundScale);
697 SO_KIT_CATALOG_ENTRY_HEADER(translatorSep);
698 SO_KIT_CATALOG_ENTRY_HEADER(translator1Switch);
699 SO_KIT_CATALOG_ENTRY_HEADER(translator1LocateGroup);
700 SO_KIT_CATALOG_ENTRY_HEADER(translator1);
701 SO_KIT_CATALOG_ENTRY_HEADER(translator1Active);
702 SO_KIT_CATALOG_ENTRY_HEADER(translator2Switch);
703 SO_KIT_CATALOG_ENTRY_HEADER(translator2LocateGroup);
704 SO_KIT_CATALOG_ENTRY_HEADER(translator2);
705 SO_KIT_CATALOG_ENTRY_HEADER(translator2Active);
706 SO_KIT_CATALOG_ENTRY_HEADER(translator3Switch);
707 SO_KIT_CATALOG_ENTRY_HEADER(translator3LocateGroup);
708 SO_KIT_CATALOG_ENTRY_HEADER(translator3);
709 SO_KIT_CATALOG_ENTRY_HEADER(translator3Active);
710 SO_KIT_CATALOG_ENTRY_HEADER(translator4Switch);
711 SO_KIT_CATALOG_ENTRY_HEADER(translator4LocateGroup);
712 SO_KIT_CATALOG_ENTRY_HEADER(translator4);
713 SO_KIT_CATALOG_ENTRY_HEADER(translator4Active);
714 SO_KIT_CATALOG_ENTRY_HEADER(translator5Switch);
715 SO_KIT_CATALOG_ENTRY_HEADER(translator5LocateGroup);
716 SO_KIT_CATALOG_ENTRY_HEADER(translator5);
717 SO_KIT_CATALOG_ENTRY_HEADER(translator5Active);
718 SO_KIT_CATALOG_ENTRY_HEADER(translator6Switch);
719 SO_KIT_CATALOG_ENTRY_HEADER(translator6LocateGroup);
720 SO_KIT_CATALOG_ENTRY_HEADER(translator6);
721 SO_KIT_CATALOG_ENTRY_HEADER(translator6Active);
724 SO_KIT_CATALOG_ENTRY_HEADER(rotatorSep);
725 SO_KIT_CATALOG_ENTRY_HEADER(rotator1Switch);
726 SO_KIT_CATALOG_ENTRY_HEADER(rotator1LocateGroup);
727 SO_KIT_CATALOG_ENTRY_HEADER(rotator1);
728 SO_KIT_CATALOG_ENTRY_HEADER(rotator1Active);
729 SO_KIT_CATALOG_ENTRY_HEADER(rotator2Switch);
730 SO_KIT_CATALOG_ENTRY_HEADER(rotator2LocateGroup);
731 SO_KIT_CATALOG_ENTRY_HEADER(rotator2);
732 SO_KIT_CATALOG_ENTRY_HEADER(rotator2Active);
733 SO_KIT_CATALOG_ENTRY_HEADER(rotator3Switch);
734 SO_KIT_CATALOG_ENTRY_HEADER(rotator3LocateGroup);
735 SO_KIT_CATALOG_ENTRY_HEADER(rotator3);
736 SO_KIT_CATALOG_ENTRY_HEADER(rotator3Active);
737 SO_KIT_CATALOG_ENTRY_HEADER(rotator4Switch);
738 SO_KIT_CATALOG_ENTRY_HEADER(rotator4LocateGroup);
739 SO_KIT_CATALOG_ENTRY_HEADER(rotator4);
740 SO_KIT_CATALOG_ENTRY_HEADER(rotator4Active);
741 SO_KIT_CATALOG_ENTRY_HEADER(rotator5Switch);
742 SO_KIT_CATALOG_ENTRY_HEADER(rotator5LocateGroup);
743 SO_KIT_CATALOG_ENTRY_HEADER(rotator5);
744 SO_KIT_CATALOG_ENTRY_HEADER(rotator5Active);
745 SO_KIT_CATALOG_ENTRY_HEADER(rotator6Switch);
746 SO_KIT_CATALOG_ENTRY_HEADER(rotator6LocateGroup);
747 SO_KIT_CATALOG_ENTRY_HEADER(rotator6);
748 SO_KIT_CATALOG_ENTRY_HEADER(rotator6Active);
750 SO_KIT_CATALOG_ENTRY_HEADER(scaleSep);
751 SO_KIT_CATALOG_ENTRY_HEADER(scale1Switch);
752 SO_KIT_CATALOG_ENTRY_HEADER(scale1LocateGroup);
753 SO_KIT_CATALOG_ENTRY_HEADER(scale1);
754 SO_KIT_CATALOG_ENTRY_HEADER(scale1Active);
755 SO_KIT_CATALOG_ENTRY_HEADER(scale2Switch);
756 SO_KIT_CATALOG_ENTRY_HEADER(scale2LocateGroup);
757 SO_KIT_CATALOG_ENTRY_HEADER(scale2);
758 SO_KIT_CATALOG_ENTRY_HEADER(scale2Active);
759 SO_KIT_CATALOG_ENTRY_HEADER(scale3Switch);
760 SO_KIT_CATALOG_ENTRY_HEADER(scale3LocateGroup);
761 SO_KIT_CATALOG_ENTRY_HEADER(scale3);
762 SO_KIT_CATALOG_ENTRY_HEADER(scale3Active);
763 SO_KIT_CATALOG_ENTRY_HEADER(scale4Switch);
764 SO_KIT_CATALOG_ENTRY_HEADER(scale4LocateGroup);
765 SO_KIT_CATALOG_ENTRY_HEADER(scale4);
766 SO_KIT_CATALOG_ENTRY_HEADER(scale4Active);
767 SO_KIT_CATALOG_ENTRY_HEADER(scale5Switch);
768 SO_KIT_CATALOG_ENTRY_HEADER(scale5LocateGroup);
769 SO_KIT_CATALOG_ENTRY_HEADER(scale5);
770 SO_KIT_CATALOG_ENTRY_HEADER(scale5Active);
771 SO_KIT_CATALOG_ENTRY_HEADER(scale6Switch);
772 SO_KIT_CATALOG_ENTRY_HEADER(scale6LocateGroup);
773 SO_KIT_CATALOG_ENTRY_HEADER(scale6);
774 SO_KIT_CATALOG_ENTRY_HEADER(scale6Active);
775 SO_KIT_CATALOG_ENTRY_HEADER(scale7Switch);
776 SO_KIT_CATALOG_ENTRY_HEADER(scale7LocateGroup);
777 SO_KIT_CATALOG_ENTRY_HEADER(scale7);
778 SO_KIT_CATALOG_ENTRY_HEADER(scale7Active);
779 SO_KIT_CATALOG_ENTRY_HEADER(scale8Switch);
780 SO_KIT_CATALOG_ENTRY_HEADER(scale8LocateGroup);
781 SO_KIT_CATALOG_ENTRY_HEADER(scale8);
782 SO_KIT_CATALOG_ENTRY_HEADER(scale8Active);
784 SO_KIT_CATALOG_ENTRY_HEADER(axisFeedbackSep);
785 SO_KIT_CATALOG_ENTRY_HEADER(axisFeedbackLocation);
786 SO_KIT_CATALOG_ENTRY_HEADER(xAxisFeedbackSwitch);
787 SO_KIT_CATALOG_ENTRY_HEADER(xAxisFeedbackActive);
788 SO_KIT_CATALOG_ENTRY_HEADER(xAxisFeedbackSelect);
789 SO_KIT_CATALOG_ENTRY_HEADER(xCrosshairFeedback);
790 SO_KIT_CATALOG_ENTRY_HEADER(yAxisFeedbackSwitch);
791 SO_KIT_CATALOG_ENTRY_HEADER(yAxisFeedbackActive);
792 SO_KIT_CATALOG_ENTRY_HEADER(yAxisFeedbackSelect);
793 SO_KIT_CATALOG_ENTRY_HEADER(yCrosshairFeedback);
794 SO_KIT_CATALOG_ENTRY_HEADER(zAxisFeedbackSwitch);
795 SO_KIT_CATALOG_ENTRY_HEADER(zAxisFeedbackActive);
796 SO_KIT_CATALOG_ENTRY_HEADER(zAxisFeedbackSelect);
797 SO_KIT_CATALOG_ENTRY_HEADER(zCrosshairFeedback);
799 SO_KIT_CATALOG_ENTRY_HEADER(translateBoxFeedbackSep);
800 SO_KIT_CATALOG_ENTRY_HEADER(translateBoxFeedbackSwitch);
801 SO_KIT_CATALOG_ENTRY_HEADER(translateBoxFeedbackRotation);
802 SO_KIT_CATALOG_ENTRY_HEADER(translateBoxFeedback);
804 SO_KIT_CATALOG_ENTRY_HEADER(scaleBoxFeedbackSwitch);
805 SO_KIT_CATALOG_ENTRY_HEADER(scaleBoxFeedback);
807 SO_KIT_CATALOG_ENTRY_HEADER(posXWallFeedbackSwitch);
808 SO_KIT_CATALOG_ENTRY_HEADER(posXWallFeedback);
809 SO_KIT_CATALOG_ENTRY_HEADER(posXRoundWallFeedback);
810 SO_KIT_CATALOG_ENTRY_HEADER(posYWallFeedbackSwitch);
811 SO_KIT_CATALOG_ENTRY_HEADER(posYWallFeedback);
812 SO_KIT_CATALOG_ENTRY_HEADER(posYRoundWallFeedback);
813 SO_KIT_CATALOG_ENTRY_HEADER(posZWallFeedbackSwitch);
814 SO_KIT_CATALOG_ENTRY_HEADER(posZWallFeedback);
815 SO_KIT_CATALOG_ENTRY_HEADER(posZRoundWallFeedback);
816 SO_KIT_CATALOG_ENTRY_HEADER(negXWallFeedbackSwitch);
817 SO_KIT_CATALOG_ENTRY_HEADER(negXWallFeedback);
818 SO_KIT_CATALOG_ENTRY_HEADER(negXRoundWallFeedback);
819 SO_KIT_CATALOG_ENTRY_HEADER(negYWallFeedbackSwitch);
820 SO_KIT_CATALOG_ENTRY_HEADER(negYWallFeedback);
821 SO_KIT_CATALOG_ENTRY_HEADER(negYRoundWallFeedback);
822 SO_KIT_CATALOG_ENTRY_HEADER(negZWallFeedbackSwitch);
823 SO_KIT_CATALOG_ENTRY_HEADER(negZWallFeedback);
824 SO_KIT_CATALOG_ENTRY_HEADER(negZRoundWallFeedback);
826 SO_KIT_CATALOG_ENTRY_HEADER(radialFeedbackSwitch);
827 SO_KIT_CATALOG_ENTRY_HEADER(radialFeedback);
829 SO_KIT_CATALOG_ENTRY_HEADER(circleFeedbackSep);
830 SO_KIT_CATALOG_ENTRY_HEADER(circleFeedbackTransformSwitch);
831 SO_KIT_CATALOG_ENTRY_HEADER(circleFeedbackAntiSquish);
832 SO_KIT_CATALOG_ENTRY_HEADER(circleFeedbackTransform);
833 SO_KIT_CATALOG_ENTRY_HEADER(xCircleFeedbackSwitch);
834 SO_KIT_CATALOG_ENTRY_HEADER(xCircleFeedback);
835 SO_KIT_CATALOG_ENTRY_HEADER(yCircleFeedbackSwitch);
836 SO_KIT_CATALOG_ENTRY_HEADER(yCircleFeedback);
837 SO_KIT_CATALOG_ENTRY_HEADER(zCircleFeedbackSwitch);
838 SO_KIT_CATALOG_ENTRY_HEADER(zCircleFeedback);
912 SbVec3f getWorldPointInBoxSpace(
const SbVec3f &pointInWorldSpace );
920 SbVec3f getInteractiveCenterInBoxSpace()
921 {
return interactiveCenterInBoxSpace; }
924 static void initClass();
925 static void exitClass();
929 RIT_X_ROTATE, TOP_Y_ROTATE, FNT_Z_ROTATE,
930 LFT_X_ROTATE, BOT_Y_ROTATE, BAK_Z_ROTATE,
932 PX_PY_PZ_3D_SCALE, PX_PY_NZ_3D_SCALE, PX_NY_PZ_3D_SCALE,
933 PX_NY_NZ_3D_SCALE, NX_PY_PZ_3D_SCALE, NX_PY_NZ_3D_SCALE,
934 NX_NY_PZ_3D_SCALE, NX_NY_NZ_3D_SCALE,
936 RIT_TRANSLATE, TOP_TRANSLATE, FNT_TRANSLATE,
937 LFT_TRANSLATE, BOT_TRANSLATE, BAK_TRANSLATE };
939 State getCurrentState() {
return currentState; }
944 static void startCB(
void *,
SoDragger * );
945 static void motionCB(
void *,
SoDragger * );
946 static void finishCB(
void *,
SoDragger * );
951 static void fieldSensorCB(
void *,
SoSensor * );
952 static void valueChangedCB(
void *,
SoDragger * );
955 static void metaKeyChangeCB(
void *,
SoDragger *);
964 void setAllPartSwitches(
int scaleAssemblyWhich,
965 int rotateAssemblyWhich,
966 int translateAssemblyWhich );
976 virtual void setDefaultOnNonWritingFields();
981 void updateAntiSquishList();
985 int getMouseGestureDirection(
SbBool xAllowed,
SbBool yAllowed,
988 static int getIgnoreAxis(
SbVec2f axis[3][2],
SbBool xAllowed,
991 static void makeMinorAxisPerpendicularIfColinear(
SbVec2f origin,
992 SbVec2f axisEnds[3][2],
int indexA,
int indexB );
1016 SbVec3f interactiveCenterInBoxSpace;
1021 SbVec2f startNormalizedLocaterPosition;
1023 SbBool altDown, ctlDown, shftDown;
1028 void setHighlights();
1030 void setFeedbackForTranslate();
1031 void setFeedbackForScale();
1032 void setFeedbackForRotate();
1034 State getStateFromPick();
1043 SbBool rotateConstrainedDrag();
1044 SbBool rotateConstrainedDiscDrag();
1045 SbBool rotateConstrainedCylindricalDrag();
1047 void initSphereProjector();
1048 void initDiscProjector();
1049 void initCylinderProjector();
1051 SbBool getShouldRotateAsDisc();
1052 int getConstrainedRotationAxis();
1055 static const char geomBuffer[];
1057 void setAllDefaultParts();
1059 SbBool locateHighlightOn;
1061 static int colinearThreshold;
1067 void makeTranslaterCatalogParts();
1068 void makeRotaterCatalogParts();
1069 void makeScalerCatalogParts();
1070 void makeAxisFeedbackCatalogParts();
1071 void makeBoxFeedbackCatalogParts();
1072 void makeWallFeedbackCatalogParts();
1073 void makeRadialFeedbackCatalogParts();
1074 void makeCircleFeedbackCatalogParts();