void UCameraComponent::GetCameraView(float DeltaTime, FMinimalViewInfo& DesiredView) { if (bUsePawnControlRotation) { if (APawn* OwningPawn = Cast<APawn>(GetOwner())) { const FRotator PawnViewRotation = OwningPawn->GetViewRotation(); if (!PawnViewRotation.Equals(GetComponentRotation())) { SetWorldRotation(PawnViewRotation); } } } DesiredView.Location = GetComponentLocation(); DesiredView.Rotation = GetComponentRotation(); DesiredView.FOV = FieldOfView; DesiredView.AspectRatio = AspectRatio; DesiredView.bConstrainAspectRatio = bConstrainAspectRatio; DesiredView.ProjectionMode = ProjectionMode; DesiredView.OrthoWidth = OrthoWidth; // See if the CameraActor wants to override the PostProcess settings used. DesiredView.PostProcessBlendWeight = PostProcessBlendWeight; if (PostProcessBlendWeight > 0.0f) { DesiredView.PostProcessSettings = PostProcessSettings; } }
bool SpatialNode::LookAt(const Vector3& target, const Vector3& up, TransformSpace space) { SpatialNode* parentNode = SpatialParent(); Vector3 worldSpaceTarget; switch (space) { case TS_LOCAL: worldSpaceTarget = WorldTransform() * target; break; case TS_PARENT: worldSpaceTarget = !parentNode ? target : parentNode->WorldTransform() * target; break; case TS_WORLD: worldSpaceTarget = target; break; } Vector3 lookDir = worldSpaceTarget - WorldPosition(); // Check if target is very close, in that case can not reliably calculate lookat direction if (lookDir.Equals(Vector3::ZERO)) return false; Quaternion newRotation; // Do nothing if setting look rotation failed if (!newRotation.FromLookRotation(lookDir, up)) return false; SetWorldRotation(newRotation); return true; }
void USCarryObjectComponent::TickComponent(float DeltaSeconds, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) { if (APawn* OwningPawn = Cast<APawn>(GetOwner())) { if (OwningPawn->IsLocallyControlled()) { Super::TickComponent(DeltaSeconds, TickType, ThisTickFunction); } else { /* NOTE: Slightly changed code from base implementation (USpringArmComponent) to use RemoteViewPitch instead of non-replicated ControlRotation */ if (bUsePawnControlRotation) { { /* Re-map uint8 to 360 degrees */ const float PawnViewPitch = (OwningPawn->RemoteViewPitch / 255.f)*360.f; if (PawnViewPitch != GetComponentRotation().Pitch) { FRotator NewRotation = GetComponentRotation(); NewRotation.Pitch = PawnViewPitch; SetWorldRotation(NewRotation); } } } UpdateDesiredArmLocation(bDoCollisionTest, bEnableCameraLag, bEnableCameraRotationLag, DeltaSeconds); } } }
void EditorIcon::UpdateEditMode(float delta) { RN::Billboard::UpdateEditMode(delta); SetPosition(_shadowed->GetWorldPosition()); SetWorldRotation(_camera->GetWorldRotation()); }
void USCarryObjectComponent::TickComponent(float DeltaSeconds, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) { //if (GetIsCarryingActor()) //{ // perform an overlap check of the actor vs. environment. must have 0 overlaps from Static and Dynamic and Pawn channels. // Use param NAME to update the color between red and green //} if (APawn* OwningPawn = Cast<APawn>(GetOwner())) { if (OwningPawn->IsLocallyControlled()) { Super::TickComponent(DeltaSeconds, TickType, ThisTickFunction); } else { /* NOTE: Slightly changed code from base implementation (USpringArmComponent) to use RemoteViewPitch instead of non-replicated ControlRotation */ if (bUsePawnControlRotation) { { /* Re-map uint8 to 360 degrees */ const float PawnViewPitch = (OwningPawn->RemoteViewPitch / 255.f)*360.f; if (PawnViewPitch != GetComponentRotation().Pitch) { FRotator NewRotation = GetComponentRotation(); NewRotation.Pitch = PawnViewPitch; SetWorldRotation(NewRotation); } } } UpdateDesiredArmLocation(bDoCollisionTest, bEnableCameraLag, bEnableCameraRotationLag, DeltaSeconds); } } }
bool Transport::Create(ObjectGuid::LowType guidlow, uint32 entry, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress) { Relocate(x, y, z, ang); if (!IsPositionValid()) { TC_LOG_ERROR("entities.transport", "Transport (GUID: " UI64FMTD ") not created. Suggested coordinates isn't valid (X: %f Y: %f)", guidlow, x, y); return false; } Object::_Create(ObjectGuid::Create<HighGuid::Transport>(guidlow)); GameObjectTemplate const* goinfo = sObjectMgr->GetGameObjectTemplate(entry); if (!goinfo) { TC_LOG_ERROR("sql.sql", "Transport not created: entry in `gameobject_template` not found, guidlow: " UI64FMTD " map: %u (X: %f Y: %f Z: %f) ang: %f", guidlow, mapid, x, y, z, ang); return false; } m_goInfo = goinfo; m_goTemplateAddon = sObjectMgr->GetGameObjectTemplateAddon(entry); TransportTemplate const* tInfo = sTransportMgr->GetTransportTemplate(entry); if (!tInfo) { TC_LOG_ERROR("sql.sql", "Transport %u (name: %s) will not be created, missing `transport_template` entry.", entry, goinfo->name.c_str()); return false; } _transportInfo = tInfo; // initialize waypoints _nextFrame = tInfo->keyFrames.begin(); _currentFrame = _nextFrame++; _triggeredArrivalEvent = false; _triggeredDepartureEvent = false; if (m_goTemplateAddon) { SetFaction(m_goTemplateAddon->faction); SetUInt32Value(GAMEOBJECT_FLAGS, m_goTemplateAddon->flags); } m_goValue.Transport.PathProgress = 0; SetObjectScale(goinfo->size); SetPeriod(tInfo->pathTime); SetEntry(goinfo->entry); SetDisplayId(goinfo->displayId); SetGoState(!goinfo->moTransport.allowstopping ? GO_STATE_READY : GO_STATE_ACTIVE); SetGoType(GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT); SetGoAnimProgress(animprogress); SetName(goinfo->name); SetWorldRotation(0.0f, 0.0f, 0.0f, 1.0f); SetParentRotation(QuaternionData()); m_model = CreateModel(); return true; }
Door::Door(RN::Vector3 position, RN::Quaternion rotation, RN::Vector3 scale) : _active(false), _counter(0.0f) { SetWorldPosition(position); SetWorldRotation(rotation); SetWorldScale(scale); SetModel(RN::Model::WithFile("Models/door/door_01.sgm")); RN::SceneNode *collider = new RN::SceneNode(); collider->SetWorldPosition(position); collider->SetWorldRotation(rotation); collider->SetWorldScale(scale); RN::bullet::RigidBody *body = new RN::bullet::RigidBody(new RN::bullet::BoxShape(RN::Vector3(0.1f, 2.0f, 2.0f)), 0.0f); collider->AddAttachment(body->Autorelease()); collider->Release(); }
void AIWeapon::FlashEmittHandler() { if (FlashParticleSystemRaw) { auto Scale = ParticleSystemComponent->RelativeScale3D; auto Rotor = ParticleSystemComponent->RelativeRotation; auto _ParticleSystemComponent = UGameplayStatics::SpawnEmitterAttached(FlashParticleSystemRaw, RootComponent, NAME_None, ArrowComponent->RelativeLocation, Rotor, EAttachLocation::KeepRelativeOffset, true); if (_ParticleSystemComponent) { _ParticleSystemComponent->SetWorldScale3D(Scale); _ParticleSystemComponent->SetWorldRotation(Rotor); } } }
void USpringArmComponent::TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) { Super::TickComponent(DeltaTime, TickType, ThisTickFunction); if (bUsePawnControlRotation) { if (APawn* OwningPawn = Cast<APawn>(GetOwner())) { const FRotator PawnViewRotation = OwningPawn->GetViewRotation(); if (PawnViewRotation != GetComponentRotation()) { SetWorldRotation(PawnViewRotation); } } } UpdateDesiredArmLocation(bDoCollisionTest, bEnableCameraLag, bEnableCameraRotationLag, DeltaTime); }
void UPrimitiveComponent::SetAllPhysicsRotation(FRotator NewRot) { SetWorldRotation(NewRot, NAME_None); }
void Node::SetWorldTransform(const Vector3& position, const Quaternion& rotation, const Vector3& scale) { SetWorldPosition(position); SetWorldRotation(rotation); SetWorldScale(scale); }