?
Bin eben wieder rein und "Oh Wunder", mir ist eben dann auch sofort die Lösung eingefallen. So funktioniert es:
void __fastcall TForm1::Grid3D1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
float X, float Y, TVector3D &RayPos, TVector3D &RayDir)
{
TVector3D Intersection(0,0,0,0);
Grid3D1->RayCastIntersect(RayPos, RayDir, Intersection);
Intersection = Dummy1->AbsoluteToLocalVector(Intersection);
TControl3D *cube = new TCube(Viewport3D1);
cube->Parent = Dummy1;
cube->SetSize(.3, .3, .3);
cube->Position->Point = TPoint3D(Intersection.X, Intersection.Y, Intersection.Z);
}
Da man ja eine Absolute Position erhält, das Objekt aber immer in Relation zu TDummy steht, muss man es erst deren Vector umwandeln.
http://docwiki.embarcadero.com/Libraries/XE3/de/FMX.Types.TControl.AbsoluteToLocalVector